400 mn +行轉換成JSON,在我看來不是一個好的解決方案,因為它將大量的空間。
無論如何,所以你JSONlines文件,但你想要JSON對象隻有在該文件。有一個簡單的方法來做到這一點。
火花寫與400 mn +您的數據記錄到“x”數量的JSON文件。
因為磚細胞支持shell命令,您可以運行以下腳本JSONL轉換為JSON文件。遞歸或無論你想運行它。
假設你的blob存儲位置是安裝在dbfs mnt目錄中。
% sh貓/ dbfs / mnt / < JSONlines輸入文件路徑> | sed - e ': ' - e ' N ' - e的美元!ba ' e ' s / \ n /, / g | sed的s / n /, / ' | sed ' s / ^ [/ | sed的s / $ /] / ' > / dbfs / mnt / JSON輸出文件<路徑>
上麵的命令應該轉換您的文件在幾秒鍾內。
用這種方法做分享關於它。
信貸:中等帖子。
嗨,墨爾本,
謝謝你的回複
我們使用下麵的代碼轉換為JSON
df.coalesce (1) .write.format (json) .save (dataLocation)
我們接受下麵的o / p
{“col1”:“一”,“col2”:“B”}
{“col1”:“C”,“col2”:“D”}
我們除了在JSON格式如下
[{“col1”:“一”,“col2”: " B "},
{“col1”:“C”,“col2”:“D”}]
謝謝你!
你所看到的文件是JSONlines。和JSON的區別是沒有方括號和逗號後每一個記錄。
你不應該麵對的問題使用火花在讀取JSON數據。