2016-08-21 45 views
2

我使用pyspark讀取拼花文件中像下面以表格形式火花數據幀:Pyspark:顯示

my_df = sqlContext.read.parquet('hdfs://myPath/myDB.db/myTable/**') 

後來,當我做my_df.take(5),它會顯示[Row(...)],而不是像一個表格式當我們使用熊貓數據框。

是否可以像熊貓數據框這樣的表格格式顯示數據幀?謝謝!

+4

嘗試:'my_df.take( 5).show()' – MaxU

+0

我得到錯誤: in () ----> my_df.take(5).show() AttributeError:'list'object has沒有屬性'顯示' – Edamame

+1

它應該是'my_df.show()。take(5)' – maxymoo

回答

8

show方法可以完成您正在尋找的任務。

例如,給定的3行以下數據幀,我可以打印只是前兩行是這樣的:

df = sqlContext.createDataFrame([("foo", 1), ("bar", 2), ("baz", 3)], ('k', 'v')) 
df.show(n=2) 

其產生:

+---+---+ 
| k| v| 
+---+---+ 
|foo| 1| 
|bar| 2| 
+---+---+ 
only showing top 2 rows 
2

是:在你的數據框上調用toPandas方法,你會得到一個實際熊貓數據框!

+1

我試過做:my_df.toPandas()。head()。但得到了錯誤:Py4JJavaError:調用z:org.apache.spark.api.python.PythonRDD.collectAndServe時發生錯誤。 :org.apache.spark.SparkException:由於階段失敗而導致作業中止:階段2.0中的任務301失敗1次,最近失敗:階段2.0中丟失的任務301.0(TID 1871,localhost):java.lang.OutOfMemoryError:Java堆空間 – Edamame

+3

這很危險,因爲這會將整個數據幀收集到單個節點中。 –

+2

應該強調的是,這將很快限制傳統Spark RDD場景中的內存。 – deepelement