【问题标题】:pyspark dataframe merge multiple json file data in one dataframepyspark 数据框将多个 json 文件数据合并到一个数据框中
【发布时间】:2017-03-02 03:54:27
【问题描述】:

在对该数据帧执行任何操作之前,我正在尝试将多个 json 文件数据合并到一个数据帧中。假设我有两个文件 file1.txt , file2.txt 包含类似的数据

file1.txt

{"a":1 , "b":"abc", "c":"abc2", "d":"abc3"}

file2.txt

{"a":1 , "b":"abc", "c":"abc2", "d":"abc3"}

所以我正在像这样一个一个地读取两个文件

range = ["file1","file2"]
for r in range:
    df = spark.read.json(r)
df.groupby("b","c","d").agg(f.sum(df["a"]))

但是数据帧覆盖了第一个数据帧数据,只显示了第二个数据帧数据。如何连接这些数据框?提前致谢!

【问题讨论】:

    标签: apache-spark pyspark apache-spark-sql spark-dataframe pyspark-sql


    【解决方案1】:

    您需要联合数据帧而不是覆盖 df 变量。例如:

    >>> dataframes = map(lambda r: spark.read.json(r), range)
    >>> union = reduce(lambda df1, df2: df1.unionAll(df2), dataframes)
    

    以上代码将range数组中的所有文件映射到相应的数据帧并将它们全部合并。

    【讨论】:

    • 感谢您的快速回复。它工作得很好。
    猜你喜欢
    • 1970-01-01
    • 2021-11-17
    • 1970-01-01
    • 2017-10-21
    • 2019-06-26
    • 1970-01-01
    • 1970-01-01
    • 2021-08-16
    • 1970-01-01
    相关资源
    最近更新 更多