2015-11-16 19 views
62

Tôi đang sử dụng spark-csv để tải dữ liệu vào DataFrame. Tôi muốn làm một truy vấn đơn giản và hiển thị nội dung:Làm cách nào để hiển thị nội dung đầy đủ của cột trong Khung dữ liệu Spark?

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

Các col dường như cắt ngắn:

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

Làm thế nào để hiển thị toàn bộ nội dung của cột?

Trả lời

125

results.show(20, False) sẽ không cắt bớt. Kiểm tra source

+3

@tracer Sẽ đánh giá cao nếu bạn chấp nhận câu trả lời của tôi vì nó giải quyết được vấn đề của bạn. Cảm ơn! – TomTom101

+1

Không OP nhưng đây thực sự là câu trả lời đúng: Chỉnh sửa nhỏ, boolean phải sai, không sai. – xv70

+21

Nó sẽ là "False" trong python, nhưng "false" trong scala/java – drewrobb

16

nếu bạn đặt chỉ results.show (False) sẽ không cắt ngắn kết quả

+2

Tôi tưởng tượng rằng [nhận xét về câu trả lời của TomTom101] (http://stackoverflow.com/users/3435649/xv70) về 'false' cũng áp dụng ở đây. – Mogsdad

+0

@Narendra Parmar cú pháp phải là 'results.show (20, False)'. Một trong những bạn đã đề cập sẽ cung cấp cho các lỗi. –

+0

@ Jai Prakash, tôi đã đưa ra câu trả lời này cho scala và bạn đang nói về python, –

2

thử lệnh này:

df.show(df.count()) 
4

Dưới mã sẽ giúp để xem tất cả các hàng mà không cần cắt ngắn trong mỗi cột

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

Các giải pháp khác là tốt. Nếu đây là những mục tiêu của mình:

  1. Không cắt ngắn của cột,
  2. Không mất hàng,
  3. nhanh và
  4. hiệu quả

Hai dòng này rất hữu ích ...

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

Bằng cách kiên trì, 2 hành động của người thi hành, đếm và hiển thị, ar e nhanh hơn & hiệu quả hơn khi sử dụng persist hoặc cache để duy trì cấu trúc khung nội tuyến tạm thời bên trong các trình thực thi. Xem thêm về persist and cache.

+0

Rất đẹp. Cảm ơn! – timbram

9

results.show(20, False) hoặc results.show(20, false) tùy thuộc vào việc bạn đang chạy nó trên Java/Scala/Python

0

Hãy thử điều này: df.show (số không) sẽ làm việc nhưng df.show (df.count()) sẽ không làm việc df.count cho kiểu đầu ra dài mà không được chấp nhận bởi df.show() vì nó chấp nhận kiểu số nguyên.

+0

Điều này không cung cấp câu trả lời cho câu hỏi. Khi bạn có đủ [danh tiếng] (https://stackoverflow.com/help/whats-reputation), bạn sẽ có thể [nhận xét về bất kỳ bài đăng nào] (https://stackoverflow.com/help/privileges/comment); thay vào đó, [cung cấp câu trả lời không yêu cầu làm rõ từ người hỏi] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-thay thế). - [Từ đánh giá] (/ đánh giá/chất lượng thấp-bài viết/17108428) – mtoto

+0

Ví dụ sử dụng df.show (2000). Nó sẽ lấy 2000 hàng –

2

results.show(false) sẽ hiển thị cho bạn nội dung toàn bộ cột.

Hiển thị phương pháp theo giới hạn mặc định là 20 và thêm số trước false sẽ hiển thị nhiều hàng hơn.

Các vấn đề liên quan