Як відобразити повний вміст стовпця в 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.