【问题标题】:Spark - convert JSON array object to concatenated stringSpark - 将 JSON 数组对象转换为连接字符串
【发布时间】:2020-04-09 23:23:53
【问题描述】:

我怎样才能使我的 pyspark DF 成为可能?

来自这样的输入 json:

  {  "obj":[ 
          { 
             "a":"val1",
             "b":"val1"
          },
          { 
             "a":"val2",
             "b":"val2"
          }
          ]
 }

到这样的数据框:

+---+---+----+----------+----+

|     a    |     b    |

+---+---+----+----------+----+

|val1, val2|val1, val2|

+---+---+----+----------+----+

【问题讨论】:

    标签: python json string dataframe pyspark


    【解决方案1】:

    假设您的 JSON 文件的内容已经被解析为 Python 字典,并且假设只有一个“obj”键,您可以轻松地将您的数据结构转换为标准的 2D 列表,然后可以将其转换为您喜欢的任何数据框格式:

    json = {"obj":[{"a":"val1","b":"val1"},{"a":"val2","b":"val2"}]}
    
    dic = {}
    for row in json['obj']:
      for key,val in row.items():
        if key in dic:
          dic[key].append(val)
        else:
          dic[key] = [val]
    
    table = list(dic.items())
    
    # result:
    # [('a', ['val1', 'val2']), ('b', ['val1', 'val2'])]
    

    【讨论】:

    • 我的解决方案被否决的原因是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-29
    • 2012-05-08
    • 2013-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多