【问题标题】:Power BI and parquet at ADLS Gen2ADLS Gen2 中的 Power BI 和镶木地板
【发布时间】:2020-02-05 23:52:20
【问题描述】:

我能够从 Power BI Desktop 连接到 ADLS Gen2 并处理 CSV 文件。

问题是 Parquet 格式也不能这样。 你曾经在 Power BI Desktop 使用过镶木地板吗?

添加 parquet 表后出现问题,我单击 Binary reference - Power Query 无法读取/预览 parquet 数据。我尝试了使用和不使用快速压缩。

我也尝试手动编写查询:

let
    Source = AzureStorage.DataLake("https://xxx.dfs.core.windows.net/yyy/data.parquet"),
    #"File" = Source{[#"Folder Path"="https://xxx.dfs.core.windows.net/yyy/data.parquet",Name="data.parquet"]}[Content],
    #"Imported File" = Parquet.Document(#"File")
in
    #"Imported File"

但出现以下异常:

无法识别名称“Parquet.Document”。确保它的拼写 正确。

尽管Parquet.Document 功能is documented。我正在使用 Poewr BI Desktop 最新版本(2019 年 12 月)。

附:在从 Visual Studio SSDT 开发 AAS 的 DAX 模型时,我也遇到了同样的问题。

【问题讨论】:

    标签: powerbi parquet powerbi-desktop


    【解决方案1】:

    Power BI 现在本机支持此功能。

    只需将 URL 粘贴到您的 Lake/Storage 帐户上的 parquet 文件中,您就可以开始使用了。显然,这要等到 March 2021 才能上线,但它会出现在 2020 年 12 月的版本中。

    【讨论】:

    • 如果您将 Windows 文件路径粘贴为 URL,这也适用于 PowerBI Desktop 中的本地文件。例如C:\path\to\file.parquet.
    【解决方案2】:

    目前,您无法在 Power BI Desktop 中直接使用 parquet 文件。您需要先利用 Azure Data Factory's wrangling data flows 之类的东西转换为 CSV 或其他可消费格式。

    您所指的功能似乎是专门为this new feature in Azure Data Factory 添加的,它允许使用 Parquet 文件来处理数据流。

    Power BI 服务的数据流也可能很快出现这种情况,但这是我的猜测。

    【讨论】:

      【解决方案3】:

      我已经能够通过 Power BI 数据流成功读取存储在 ADLSG2 中的 parquet 文件。

      很遗憾,您无法通过 gui 完成任务;在撰写本文时,Parquet 格式本身并未被检测为源数据类型。要解决此问题,只需使用高级查询编辑器(要进入高级编辑器,只需选择 JSON 或替代数据类型,然后在高级查询编辑器中覆盖 M 代码)。

      注意:这目前不适用于 2020 年 6 月版的 PowerBI Desktop。据我所知,它只能通过数据流工作:

      let
        Source = AzureStorage.DataLake("https://xxxxxxxxxx.dfs.core.windows.net/Container"),
        Navigation = Parquet.Document(Source{[#"Folder Path" = "https://xxxxxxxxxx.dfs.core.windows.net/yourcontainer/yoursubfolder/", Name = "yourParquetFile"]}[Content]),
        #"Remove columns" = Table.RemoveColumns(Navigation, Table.ColumnsOfType(Navigation, {type table, type record, type list, type nullable binary, type binary, type function}))
      in
        #"Remove columns"
      

      【讨论】:

      • 让它也能正常工作。 Parquet.Document() 有什么选项吗?文档非常缺乏。只能读取特定列是有意义的(它是一种列存储格式)。此外,如果我也使用 pyarrow 或 spark,则支持行级过滤。我只是不确定 Parquet.Document 是否支持这些功能
      猜你喜欢
      • 2021-04-07
      • 2021-10-26
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      • 2020-09-20
      • 1970-01-01
      • 1970-01-01
      • 2022-07-20
      相关资源
      最近更新 更多