2017-06-19 74 views
0

我有一個json文件,其中考慮到後sparkSql-Context本質上是CSV格式。火花斯卡拉:展開包裝的列數據

示例數據文件:(注意這裏不是每個用戶院校固定數量的)

Name age  college_name 
a1  10  abc college, bcd college, xyz college 
a2  12  dsa college, iop college 

我想獲得在形式上面的文件,如下所示:

Name age  college_name 
a1  10  abc college, 
a1  10  bcd college, 
a1  10  xyz college 
a2  12  dsa college, 
a2  12  iop college 

我知道它可能通過在java中創建UDF。但我想知道是否可以在Spark-scala。?

回答

0

您可以通過使用sqlContext作爲

+----+---+-------------------------------------+ 
|Name|age|college_name       | 
+----+---+-------------------------------------+ 
|a1 |10 |abc college, bcd college, xyz college| 
|a2 |12 |dsa college, iop college    | 
+----+---+-------------------------------------+ 

你可以做的是使用讀json數據json文件dataframe使用sqlContext API轉換爲

sqlContext.read.json("path to json file") 

假設你必須已經dataframeexplodesplit函數,你可以找到更多的信息functions

df.withColumn("college_name", explode(split(df("college_name"), ","))) 

你應該有你的即時還原所需的輸出

+0

三江源。經過小小的改動(刪除「分裂」)你的代碼工作完美---> df.withColumn(「college_name」,explode(df(「college_name」))) –

+0

很高興聽到@SijaBalakrishnan和感謝接受 –