我有一个服务总线主题订阅和一个将数据发送到事件中心的逻辑应用程序,该数据由流分析读取,并生成一个 parquet 文件并将其存储在数据湖中。然后我尝试使用 SQL 查询在突触中读取这些镶木地板文件,但是我收到此错误:
Error handling external file: 'Malformed levels. min: 0 max: 2 out of range. Max Level: 1'.
我已将其范围缩小为某些数组和记录类型列的问题,有人知道可能导致问题的原因吗?
如果我从数组和记录字段中选择项目,问题似乎就会消失,但我宁愿保持它们原样,而不是压平它们。
正如您提到的,某些数组和记录类型列存在问题。
您尝试读取的 Parquet 文件可能具有与 Synapse 不兼容的架构。该错误的另一个可能原因是 Parquet 文件已损坏。
您可以使用
OPENROWSET
函数读取 Parquet 文件的内容。
我尝试使用
OPENROWSET
函数读取镶木地板文件
TOP 100 *
FROM
OPENROWSET(
BULK 'https://dileepstggen2.dfs.core.windows.net/folder02/sample_nested_pyspark.parquet/*.snappy.parquet',
FORMAT = 'PARQUET'
) AS [result]
您还可以在查询 Parquet 文件时指定感兴趣的列。如果某些列中有标量值数组,则可以使用
OPENJSON
函数展开它们并将它们与主行连接。
了解有关在 Azure Synapse Analytics 中使用无服务器 SQL 池查询 Parquet 文件的更多信息