簡體   English   中英

在Apache Spark中讀取漂亮的打印json文件

[英]Reading pretty print json files in Apache Spark

我的S3存儲桶中有很多json文件,我希望能夠讀取它們並查詢這些文件。 問題是它們印刷得很漂亮。 一個json文件只有一個龐大的字典,但它不在一行中。 根據這個線程,json文件中的字典應該在一行中,這是Apache Spark的限制。 我沒有這樣的結構。

我的JSON架構看起來像這樣 -

{
    "dataset": [
        {
            "key1": [
                {
                    "range": "range1", 
                    "value": 0.0
                }, 
                {
                    "range": "range2", 
                    "value": 0.23
                }
             ]
        }, {..}, {..}
    ],
    "last_refreshed_time": "2016/09/08 15:05:31"
}

這是我的問題 -

  1. 我可以避免轉換這些文件以匹配Apache Spark所需的架構(文件中每行一個字典)並仍能讀取它嗎?

  2. 如果沒有,在Python中最好的方法是什么? 我每天都有一堆這些文件。 存儲桶按日分區。

  3. 有沒有其他工具更適合查詢Apache Spark以外的這些文件? 我在AWS堆棧上,所以可以嘗試使用Zeppelin筆記本的任何其他建議工具。

你可以使用sc.wholeTextFiles()這是一篇相關的帖子

或者,您可以使用簡單的函數重新格式化json並加載生成的文件。

def reformat_json(input_path, output_path):
    with open(input_path, 'r') as handle:
        jarr = json.load(handle)

    f = open(output_path, 'w')
    for entry in jarr:
        f.write(json.dumps(entry)+"\n")
    f.close()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM