स्पार्क डेटाफ़्रेम में पूर्ण स्तंभ सामग्री कैसे दिखाएं?


201

मैं 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:...|
+--------------------+

मैं कॉलम की पूरी सामग्री कैसे दिखा सकता हूं?

जवाबों:


374

results.show(20, false)नहीं छंटेगा। स्रोत की जाँच करें


4
यदि आप मेरे जवाब को स्वीकार कर लेते हैं तो यह आपकी समस्या को हल कर देगा। धन्यवाद!
टॉमटॉम्स 101

3
ओपी नहीं लेकिन यह वास्तव में सही उत्तर है: मामूली सुधार, बूलियन गलत होना चाहिए, गलत नहीं।
xv70

78
यह अजगर में "झूठा" होगा, लेकिन स्काला / जावा में "झूठा"
ड्रूबोर्ब

4
स्पार्क-शेल में यह गलत (गलत नहीं) है
लुका गिबेली

5
कंसोल मोड में स्ट्रीम करने के लिए लिखने के बराबर हैdataFrame.writeStream.outputMode("append").format("console").option("truncate", "false").start()
JMess

38

यदि आप डालते हैं results.show(false), तो परिणाम कम नहीं होंगे


2
मुझे लगता है कि TomTom101 के जवाब के बारे में टिप्पणीfalse यहाँ भी लागू होती है।
मोगसाद

1
@ नरेन्द्र परमार का वाक्य विन्यास होना चाहिए results.show(20, False)। आपने जो उल्लेख किया है, वह त्रुटि देगा।
जय प्रकाश

@ जय प्रकाश, मैंने यह उत्तर दिया है स्कला के लिए और आप अजगर के बारे में बात कर रहे हैं,
नरेंद्र परमार

@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

जारी रखते हुए, 2 निष्पादक क्रियाएं, गणना और प्रदर्शन, तेज या अधिक कुशल होते हैं जब उपयोग persistया cacheनिष्पादकों के भीतर अंतरिम अंतर्निहित डेटाफ़्रेम संरचना को बनाए रखने के लिए। दृढ़ता और कैश के बारे में अधिक देखें ।


1
बहुत अच्छा। धन्यवाद!
टिम्बरम

15

नीचे दिए गए कोड से प्रत्येक कॉलम में ट्रंकेशन के बिना सभी पंक्तियों को देखने में मदद मिलेगी

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

इसी खोज में मैंने पूर्व उत्तर देने वाले से पूछा: क्या इसका कारण dfदो बार एकत्र होना है?
javadba

@ जजदबा हां, मुझे लगता है कि गिनती () एक बार डीएफ के माध्यम से जाएगी, और शो () दो बार डीएफ एकत्र करेगा।
मोएचेन

10

results.show(20, False)या यह results.show(20, false) निर्भर करता है कि आप इसे जावा / स्काला / पायथन पर चला रहे हैं


3

results.show(false) आपको पूर्ण स्तंभ सामग्री दिखाएगा।

डिफ़ॉल्ट सीमा 20 से विधि दिखाएं, और पहले एक संख्या जोड़ने से falseअधिक पंक्तियाँ दिखाई देंगी।


2

इस आदेश का प्रयास करें:

df.show(df.count())

1
इसे आज़माएँ: df.show (कुछ नहीं) काम करेगा लेकिन df.show (df.count ()) काम नहीं करेगा df.count आउटपुट प्रकार को लंबा देता है जो df.show () द्वारा स्वीकार नहीं किया जाता है क्योंकि यह पूर्णांक प्रकार को स्वीकार करता है।
थोटा क्रांति कुमार

उदाहरण df.show (2000) का उपयोग करें। यह 2000 पंक्तियों को पुनः प्राप्त करेगा
थोटा क्रांति कुमार

2
क्या इसका कारण dfदो बार एकत्र होना है?
javadba




0

इसे स्कैला में आज़माएं:

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

शो विधि एक पूर्णांक और बूलियन मान को स्वीकार करती है, लेकिन df.count लंबे समय तक लौटती है ... इसलिए टाइपिंग कास्टिंग की आवश्यकता होती है


0

सी में # Option("truncate", false)आउटपुट में डेटा को छोटा नहीं करता है।

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

0

निम्नलिखित उत्तर स्पार्क स्ट्रीमिंग एप्लिकेशन पर लागू होता है।

"ट्रंकट" विकल्प को गलत पर सेट करके, आप पूर्ण कॉलम प्रदर्शित करने के लिए आउटपुट सिंक बता सकते हैं।

val query = out.writeStream
          .outputMode(OutputMode.Update())
          .format("console")
          .option("truncate", false)
          .trigger(Trigger.ProcessingTime("5 seconds"))
          .start()
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.