Як відобразити повний вміст стовпця в Spark Dataframe?


203

Я використовую spark-csv для завантаження даних у DataFrame. Я хочу зробити простий запит і відобразити вміст:

val df = sqlContext.read.format("com.databricks.spark.csv").option("header", "true").load("my.csv")
df.registerTempTable("tasks")
results = sqlContext.sql("select col from tasks");
results.show()

Коло здається усіченим:

scala> results.show();
+--------------------+
|                 col|
+--------------------+
|2015-11-16 07:15:...|
|2015-11-16 07:15:...|
|2015-11-16 07:15:...|
|2015-11-16 07:15:...|
|2015-11-16 07:15:...|
|2015-11-16 07:15:...|
|2015-11-16 07:15:...|
|2015-11-16 07:15:...|
|2015-11-16 07:15:...|
|2015-11-16 07:15:...|
|2015-11-16 07:15:...|
|2015-11-16 07:15:...|
|2015-11-16 07:15:...|
|2015-11-16 07:15:...|
|2015-11-16 07:15:...|
|2015-11-06 07:15:...|
|2015-11-16 07:15:...|
|2015-11-16 07:21:...|
|2015-11-16 07:21:...|
|2015-11-16 07:21:...|
+--------------------+

Як відобразити повний вміст стовпця?

Відповіді:


377

results.show(20, false)не вріжеться. Перевірте джерело


4
@tracer Будемо вдячні, якщо ви прийняли мою відповідь, якщо вона вирішить вашу проблему. Дякую!
— TomTom101

3
Не ОП, але це справді правильна відповідь: Незначне виправлення, булеве має бути помилковим, а не хибним.
— xv70

78
Це було б "False" у python, але "false" у scala / java
— drewrobb

4
це фальшиво (не помилково) у іскровій оболонці
— Лука Гібеллі

6
еквівалент написання для трансляції в консольному режиміdataFrame.writeStream.outputMode("append").format("console").option("truncate", "false").start()
— JMess

39

Якщо ви поставите results.show(false), результати не будуть усічені


2
Я вважаю , що коментар на відповідь TomTom101 в про falseзастосовне і тут теж.
— Могсдад

1
@Narendra Parmar синтаксис повинен бути results.show(20, False). Той, про кого ви згадали, дасть помилку.
— Джай Пракаш

@ Jai Prakash, я дав цю відповідь за scala, а ти говориш про python,
— Narendra Parmar

@NarendraParmar вибачте, що ви праві. В scalaобох варіантах діє. results.show(false)іresults.show(20, false)
— Джай Пракаш

17

Інші рішення хороші. Якщо це ваші цілі:

  1. Не має усікання стовпців,
  2. Без втрат рядків,
  3. Швидкий і
  4. Ефективний

Ці два рядки корисні ...

    df.persist
    df.show(df.count, false) // in Scala or 'False' in Python

Наполягаючи, дві дії виконавця, підрахунок та показ, є швидшими та ефективнішими при використанні persistабо cacheпідтримці тимчасової базової структури фрейму даних у виконавців. Докладніше про збереження та кеш .


1
Дуже хороша. Дякую!
— тембрам

15

Нижче код допоможе переглянути всі рядки без урізання в кожному стовпці

df.show(df.count(), False)

тим же запитанням я запитав попереднього відповідача: чи викликає dfце збирання двічі?
— javadba

@javadba так, я думаю, що count () пройде через df один раз, а show () збиратиме df двічі.
— MoeChen

10

results.show(20, False)або results.show(20, false) залежно від того, чи використовуєте ви це на Java / Scala / Python


3

results.show(false) покаже повний вміст стовпця.

Показати метод за замовчуванням обмеженням до 20, а додавання числа раніше falseпокаже більше рядків.


2

спробуйте цю команду:

df.show(df.count())

1
Спробуйте це: df.show (деякий ні) буде працювати, але df.show (df.count ()) не працюватиме df.count дає тип виводу довгий, який не приймається df.show (), оскільки він приймає цілий тип.
— Thota Kranthi Kumar

Приклад використання df.show (2000). Він отримає 2000 рядів
— Thota Kranthi Kumar

2
ця причина dfзбирається двічі?
— javadba


1

У межах Databricks можна візуалізувати кадр даних у табличному форматі. За допомогою команди:

display(results)

Це буде виглядати так

введіть тут опис зображення



0

Спробуйте це в масштабі:

df.show(df.count.toInt, false)

Метод show приймає ціле та булеве значення, але df.count повертає Long ...


0

У c # Option("truncate", false)не обрізає дані у висновку.

StreamingQuery query = spark
                    .Sql("SELECT * FROM Messages")
                    .WriteStream()
                    .OutputMode("append")
                    .Format("console")
                    .Option("truncate", false)
                    .Start();

0

Наступна відповідь стосується програми Spark Streaming.

Встановивши параметр "усікати" на значення "false", ви можете сказати на вихідному протоколі відобразити повний стовпець.

val query = out.writeStream
          .outputMode(OutputMode.Update())
          .format("console")
          .option("truncate", false)
          .trigger(Trigger.ProcessingTime("5 seconds"))
          .start()
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.