2017-10-10 28 views
0

rddをデータフレームに変換し、データフレームをpyspark 1.6.1でrddに変換する方法の例はありますか? toDF()は1.6.1で使用できませんか?pyspark 1.6.1でrddをデータフレームに変換する方法は?

例えば、私はこのようなRDDがありますすることはできませんあなたが.toDF()メソッドを使用することはできません何らかの理由場合

data = sc.parallelize([('a','b','c', 1,4), ('o','u','w', 9,3), ('s','q','a', 8,6), ('l','g','z', 8,3), \ 
         ('a','b','c', 9,8), ('s','q','a', 10,10), ('l','g','z', 20,20), ('o','u','w', 77,77)]) 

答えて

0

を、私が提案する解決策はこれです:

data = sqlContext.createDataFrame(sc.parallelize([('a','b','c', 1,4), ('o','u','w', 9,3), ('s','q','a', 8,6), ('l','g','z', 8,3), \ 
        ('a','b','c', 9,8), ('s','q','a', 10,10), ('l','g','z', 20,20), ('o','u','w', 77,77)])) 

これは、 "_n"という名前のDFを作成します(nは列の番号)。列の名前を変更する場合は、この投稿を参照することをお勧めします:How to change dataframe column names in pyspark?。しかし、すべてを行う必要がある:

data_named = data.selectExpr("_1 as One", "_2 as Two", "_3 as Three", "_4 as Four", "_5 as Five") 

が今度はDFを見てみましょう:

data_named.show() 

そして、この意志出力:

+---+---+-----+----+----+ 
|One|Two|Three|Four|Five| 
+---+---+-----+----+----+ 
| a| b| c| 1| 4| 
| o| u| w| 9| 3| 
| s| q| a| 8| 6| 
| l| g| z| 8| 3| 
| a| b| c| 9| 8| 
| s| q| a| 10| 10| 
| l| g| z| 20| 20| 
| o| u| w| 77| 77| 
+---+---+-----+----+----+ 

はEDIT:あなたはできるはずですので、もう一度お試しくださいspark 1.6.1で.toDF()を使用する

0

rdd.toDFがpyspark fで使用できない理由はありませんまたはスパークする。 toDF()に例えばスパーク1.6.1 Pythonのドキュメントを確認してください:https://spark.apache.org/docs/1.6.1/api/python/pyspark.sql.html#pyspark.sql.SQLContext

あなたの要件ごとに、

rdd = sc.parallelize([('a','b','c', 1,4), ('o','u','w', 9,3), ('s','q','a', 8,6), ('l','g','z', 8,3), ('a','b','c', 9,8), ('s','q','a', 10,10), ('l','g','z', 20,20), ('o','u','w', 77,77)]) 

#rdd to dataframe 
df = rdd.toDF() 
## can provide column names like df2 = df.toDF('col1', 'col2','col3,'col4') 

#dataframe to rdd 
rdd2 = df.rdd 
関連する問題