【问题标题】:PySpark save DataFrame to actual JSON filePySpark 将 DataFrame 保存到实际的 JSON 文件
【发布时间】:2016-07-09 11:14:29
【问题描述】:

如何将 PySpark DataFrame 保存到真实的 JSON 文件?

按照文档,我已经尝试过

df.write.json('myfile.json')

它可以工作,但是它将文件保存为一系列字典,每行一个,并且不会被 a 正确读取

import json
d = json.load(open('myfile.json'))

我希望该文件包含一个字典列表。有什么办法吗?

【问题讨论】:

  • 你试过json.dumps(df.__dict__)吗?
  • @TalesPádua df 只是分布式数据结构的接口。它的__dict__ 在这里没有任何有用的东西。

标签: python json apache-spark dataframe pyspark


【解决方案1】:

有办法吗?不是真的,或者至少不是以一种优雅的方式。您可以将数据转换为 Python RDD、计算分区统计信息并手动构建完整的文档,但这看起来很浪费时间。

如果您想获得dicts 中的list,只需逐行解析文件(-s):

with open('myfile.json') as fr:
    dicts = [json.loads(line) for line in fr]

【讨论】:

    【解决方案2】:

    你也可以这样做

    from pyspark.sql.functions import get_json_object
    df=sc.textFile("path/to/file").toDF(["col"])
    df.select(get.json.object("col", "$").alias("list_of_dictionaries"))
    df.list_of_dictionaries
    

    它返回一个列对象,您可以将其转换为 python 列表

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-31
      • 2018-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-17
      • 1970-01-01
      相关资源
      最近更新 更多