1

我有一個JSON對象波紋管在Spark Json中轉換Csv?

{"Event":"xyz","Name":"test","Prog":0,"AId":"367","CId":"11522"}   

使用波紋管火花腳本一樣,我已經轉換成CSV

val sqlContext = new org.apache.spark.sql.SQLContext(sc) 
val df = sqlContext.load("org.apache.spark.sql.json", Map("path" -> "test1.json")) 
df.save("com.databricks.spark.csv", SaveMode.ErrorIfExists, Map("path" -> "datascv", "header" -> "true")) 

我能轉換成CSV文件,我的輸出是

AId,CId,Event,Name,Prog 
367,11522,xyz,test,0 

但在這裏csv頭是升序,但我想維護我的csv文件頭像自定義格式如波紋管,即相同我的JSON順序。

Event,Name,Prog,AId,CIdEvent,Name,Prog,AId,CId 

請幫我這個。

在此先感謝。

回答

0

您可以嘗試以下操作。

val selectedData = df.select("Event", "Name", "Prog", "AId", "CId") 
selectedData.save("com.databricks.spark.csv", SaveMode.ErrorIfExists, 
        Map("path" -> "datascv", "header" -> "true")) 
+0

這工作正常,但我想知道如何從Json動態獲取這些鍵值,與Json order.i.e相同。未來如果我還有一個額外的關鍵字。 (Event,Name,Prog,AId,CIdEvent,Name,Prog,AId,Cid),未來如果我有(Event,Name,Prog,AId,CIdEvent,Name,Prog,AId,Cid, YYY,ZZZ)。 請讓我知道如何動態處理,我不想觸摸我的Scala代碼。 –