我想将变量中的JSON字符串转换为Databricks上的PySpark DataFrame。
我有一个来自API的有效负载。它是一个名为response_list
的变量上的JSON对象列表。该变量是类型为class 'str'>
的JSON对象:
[{"sentiment":"neutral","sentiment_confidence_score":0.8585},{"sentiment":"neutral","sentiment_confidence_score":0.7861}]
我尝试将其解析为PySpark Dataframe ,这样每个对象都是一行。
| Spark柱|
| - ------|
| {"情绪":"中性","情绪_信心_分数":0.8585}|
| {"情绪":"中性","情绪_信心_分数":0.7861}|
我尝试的是:
dfJson = sc.parallelize(response_list).map(lambda x: json.dumps(x))
dfJson = spark.read.json(dfJson)
dfJson.show(truncate = False)
它给了我一个缺少参数的错误:
File "<command-3646528696964905>", line 79, in json_parse
dfJson = sc.parallelize(response_list).map(lambda x: json.dumps(x))
TypeError: parallelize() missing 1 required positional argument: 'c'
我已经花了将近一整天的时间在这上面。当我把JSON列表复制粘贴到一个JSON验证器中时,它说,这个JSON是有效的。所以我假设格式是正确的。但是我不知道如何把它转换成 Dataframe 。
1条答案
按热度按时间fhg3lkii1#
好吧,这就像回答我自己的问题一样。但是我最终解决了它。如果版主认为合适的话,他们可以删除这个问题。我把json字符串解析成一个字典列表。然后我用字典列表创建了一个Spark数据框架。我相信有更有效的方法来做这件事。但是现在这个方法有效。
输出如下所示: