2017-10-30 8 views
0

私はデータフレームをパイプで区切られた値に変換し、それをSparkシェル(scala)のファイルに書き出します。しかし、私はPySpark側では無知です。助けていただければ幸いです。PySparkのmkStringに相当するものは何ですか?

特に、各列を '|'で結合する方法はわかりません。説明

stgDF.rdd.map(lambda line: "|".join([str(x) for x in line])) 

'|'.joinが、それはScalaの-としてリストを取る中mkStringのと同じです。ここ

は、Scalaのバージョン

scala> val stgDF = spark.read.table("tbl") 
stgDF: org.apache.spark.sql.DataFrame = [name: string, num: int] 

scala> stgDF.map(line => line.mkString("|")).take(2) //How do I do in PySpark? 
res0: Array[String] = Array(spark|2001, yarn|2002) 

scala> val tmp = stgDF.map(line => line.mkString("|")).rdd 
tmp: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[20] at rdd at <console>:25 

scala> tmp.saveAsTextFile("stgDF") 

答えて

2

は次のようなものですそして、区切り記号がであるリストの要素を結合する。リストの理解[str(x) for x in line]は、連結の前に行のすべての要素を文字列にキャストするだけです。

+0

説明してください。 – Bala

+0

okは助けてくれる答え – ags29

+1

を修正します – ags29

関連する問題