Bagaimana cara menampilkan konten kolom lengkap dalam Spark Dataframe?


201

Saya menggunakan spark-csv untuk memuat data ke dalam DataFrame. Saya ingin melakukan kueri sederhana dan menampilkan konten:

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()

Col tampaknya terpotong:

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:...|
+--------------------+

Bagaimana cara menampilkan konten lengkap kolom?

Jawaban:


372

results.show(20, false)tidak akan terpotong. Periksa sumbernya


4
@tracer Sangat menghargai jika Anda akan menerima jawaban saya karena itu menyelesaikan masalah Anda. Terima kasih!
— TomTom101

3
Bukan OP tetapi ini memang jawaban yang benar: Koreksi kecil, boolean harus Salah, bukan salah.
— xv70

77
Itu akan menjadi "Salah" dengan python, tapi "salah" di scala / java
— drewrobb

4
itu palsu (bukan False) dalam cangkang
— Luca Gibelli

5
yang setara dengan penulisan streaming dalam mode konsol adalahdataFrame.writeStream.outputMode("append").format("console").option("truncate", "false").start()
— JMess

38

Jika Anda memasukkan results.show(false), hasilnya tidak akan terpotong


2
Saya membayangkan bahwa komentar pada jawaban TomTom101 tentang falseberlaku juga di sini.
— Mogsdad

1
@Narendra Parmar sintaks seharusnya results.show(20, False). Yang Anda sebutkan akan memberikan kesalahan.
— Jai Prakash

@ Jai Prakash, saya telah memberikan jawaban ini untuk scala dan Anda berbicara tentang python,
— Narendra Parmar

@NarendraParmar maaf Anda benar. Dalam scalakedua opsi tersebut valid. results.show(false)danresults.show(20, false)
— Jai Prakash

17

Solusi lain baik. Jika ini adalah tujuan Anda:

  1. Tidak ada pemotongan kolom,
  2. Tidak ada kehilangan baris,
  3. Cepat dan
  4. Efisien

Dua baris ini bermanfaat ...

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

Dengan bertahan, 2 tindakan pelaksana, hitung dan tunjukkan, lebih cepat & lebih efisien saat menggunakan persistatau cacheuntuk mempertahankan struktur kerangka data yang mendasari sementara di dalam pelaksana. Lihat lebih lanjut tentang bertahan dan cache .


1
Sangat bagus. Terima kasih!
— timbram

15

Kode di bawah ini akan membantu untuk melihat semua baris tanpa pemotongan di setiap kolom

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

pertanyaan yang sama saya bertanya pada penjawab sebelumnya: apakah ini menyebabkan dfdikumpulkan dua kali?
— javadba

@javadba ya, saya pikir count () akan melewati df satu kali, dan show () akan mengumpulkan df dua kali.
— MoeChen

10

results.show(20, False)atau results.show(20, false) tergantung pada apakah Anda menjalankannya di Java / Scala / Python


3

results.show(false) akan menampilkan konten kolom lengkap kepada Anda.

Tampilkan metode dengan batas default ke 20, dan menambahkan angka sebelum falseakan menampilkan lebih banyak baris.


2

coba perintah ini:

df.show(df.count())

1
Coba ini: df.show (beberapa tidak) akan berfungsi tetapi df.show (df.count ()) tidak akan berfungsi df.count memberikan tipe keluaran yang panjang yang tidak diterima oleh df.show () karena menerima tipe integer.
— Thota Kranthi Kumar

Contoh menggunakan df.show (2000). Ini akan mengambil 2.000 baris
— Thota Kranthi Kumar

2
apakah ini menyebabkan dfdikumpulkan dua kali?
— javadba

2

results.show(20,false) melakukan trik untuk saya di Scala.


1

Dalam Databricks Anda dapat memvisualisasikan kerangka data dalam format tabel. Dengan perintah:

display(results)

Akan terlihat seperti

masukkan deskripsi gambar di sini



0

Coba ini di scala:

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

Metode show menerima integer dan nilai Boolean tetapi df.count mengembalikan Long ... jadi diperlukan pengecoran tipe


0

Dalam c # Option("truncate", false)tidak memotong data dalam output.

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

0

Jawaban berikut berlaku untuk aplikasi Spark Streaming.

Dengan mengatur opsi "truncate" ke false, Anda dapat memberi tahu wastafel keluaran untuk menampilkan kolom lengkap.

val query = out.writeStream
          .outputMode(OutputMode.Update())
          .format("console")
          .option("truncate", false)
          .trigger(Trigger.ProcessingTime("5 seconds"))
          .start()
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.