在多行Azure Synapse笔记本中阅读JSON

eimct9ow  于 2023-02-25  发布在  其他
关注(0)|答案(1)|浏览(136)

下午好,
我正在尝试使用Pyspark Dataframe 将日志数据读入Azure Synapse笔记本。当前数据位于容器中,我正在尝试通过其链接访问它:

abfss://insights-logs-integrationpipelineruns@{x}.dfs.core.windows.net/resourceId=....

但是我遇到了一个问题,JSON文件包含多行
{ "Level": 4, "correlationId": "x", "time": "y", "runId": "z", "resourceId":...}
{ "Level": 4, "correlationId": "a", "time": "b", "runId": "c", "resourceId":...}
{ "Level": 4, "correlationId": "d", "time": "e", "runId": "f", "resourceId":...}
我尝试使用原生spark.read.json方法,并将multiline选项设置为true,如下所示:

df = spark.read.option("multiLine","true").json(uri)

但我得到了以下错误:

    • 分析异常:在数据架构中找到重复列:level**

问题是,我需要的数据嵌套在每一行中,如果有一种方法可以将JSON文件作为字典加载,我就知道如何解析它,以便获得我需要的数据。
否则,如果没有办法做到这一点,有没有办法让我指定pyspark只读取文件的一部分?

rqqzpn5f

rqqzpn5f1#

将此添加到我的笔记本中修复了我的问题:

spark.conf.set("spark.sql.caseSensitive", "true")

相关问题