2015-04-14 170 views
3

PBM:我可以將熊貓數據框轉換爲火花rdd嗎?

一)讀本地文件到熊貓數據幀說PD_DF B)操縱/ Massge的PD_DF和列添加到數據幀 C)需要使用火花寫PD_DF到HDFS。我該怎麼做 ?

+0

爲什麼不直接將本地文件讀入Spark數據框? – karlson

+0

正如我所說的,我想在使用spark將它寫入HDFS之前使用熊貓DF來操作數據。不知道火花數據幀是否支持熊貓數據框支持的所有功能 –

回答

8

可以使用SQLContext對象調用createDataFrame方法,該方法的輸入data其可以任選地是熊貓DataFrame對象。

+0

我知道這個選項。但試圖查看是否有一種直接的方式將DF轉換爲RDD而不創建schemaRDD。 –

+1

'schemaRDD'已被Spark 1.3中的DataFrames所取代。如果你不想讓你的RDD元素成爲'Row'實例,調用'df.rdd.map(lambda x:[e for e in x])'。雖然我真的不明白你爲什麼要這麼做。你想要保存什麼格式? – karlson

+0

計劃是從NFS中讀取csv文件,並在使用panda df進行處理後,將其交換爲spark rdd並將其寫爲hdfs中的avro/parquet文件。此外,是否支持DF支持熊貓DF目前支持的所有功能? –

1

比方說dataframe的類型是pandas.core.frame.DataFrame的再火花2.1 - Pyspark我這樣做

rdd_data = spark.createDataFrame(dataframe)\ 
       .rdd 

在情況下,如果要重命名的列或只選擇幾列,你在使用之前做他們.rdd

希望它也適用於你。

0

我使用Spark 1.6.0。首先將熊貓數據幀轉換爲火花數據幀,然後火花數據幀火花rdd

sparkDF = sqlContext.createDataFrame(pandasDF) 
sparkRDD = sparkDF.rdd.map(list) 
type(sparkRDD) 
pyspark.rdd.PipelinedRDD 
相關問題