【问题标题】:Using Databricks to convert Excel to a standard format [closed]使用 Databricks 将 Excel 转换为标准格式 [关闭]
【发布时间】:2018-06-04 07:39:40
【问题描述】:

我正在尝试使用 Data Factory 和 Databricks 实现一个流程,以将数据摄取到 Data Lake 并将其全部转换为标准格式,即 parquet。因此,我们将拥有一个原始数据层和一个干净/标准化的数据层。

当源系统是数据库或分隔文件时,它(相对)容易,但在某些情况下,我们会有 excel 源。我一直在使用com.crealytics.spark.excel 测试转换过程,这没问题,因为我们可以推断架构但它无法遍历多个工作表或获取工作表名称列表以使我能够迭代认为每个转换为单个工作表文件。

我需要它尽可能动态,以便我们可以摄取几乎任何文件,无论其类型或架构。

有没有人知道这样做的任何替代方法?如有必要,我愿意远离数据块,例如带有自定义 C# 脚本的 Azure Batch。

提前致谢!

【问题讨论】:

    标签: apache-spark apache-spark-sql azure-data-lake databricks


    【解决方案1】:

    由于您的目标是将数据存储在 Azure Data Lake 中,另一种方法可能是将 Azure Data Lake Analytics 与自定义 Excel 提取器一起使用。然后 U-SQL 可以将其转换为 Parquet。请参阅here 获取 Excel 提取器示例。

    您预计 Excel 工作表的可变性有多大?

    这里的主要问题是很难完全与模式无关,尤其是在您有很多列的情况下。要处理模式的可变性,您可以更改提取器以将列输出为键/值对,或者 - 如果列数和行的大小合理 - 作为 SqlMap (或几个用于不同的目标类型)。尽管您可能必须在创建 Parquet 之前将其转置为列格式,这需要第二个脚本来创建转置脚本或一些自定义输出器(而不是内置 Parquet 输出器)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-08
      • 2020-05-28
      • 2019-01-12
      相关资源
      最近更新 更多