Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 使用Databricks将Excel转换为标准格式_Apache Spark_Apache Spark Sql_Azure Data Lake_Databricks - Fatal编程技术网

Apache spark 使用Databricks将Excel转换为标准格式

Apache spark 使用Databricks将Excel转换为标准格式,apache-spark,apache-spark-sql,azure-data-lake,databricks,Apache Spark,Apache Spark Sql,Azure Data Lake,Databricks,我正试图实现一个过程,使用数据工厂和DataRicks将数据摄取到DataLake中,并将其全部转换为标准格式,即拼花地板。因此,我们将有一个原始数据层和一个干净/标准化的数据层 当源系统是DB或分隔文件时,它(相对)比较容易,但在某些情况下,我们将使用excel源。我一直在用com.crealytics.spark.excel测试转换过程,这是可以的,因为我们可以推断模式,但它无法迭代多个工作表,也无法获得工作表名称列表,以便我迭代将每个工作表转换为单个文件 我需要这是尽可能动态的,以便我们可

我正试图实现一个过程,使用数据工厂和DataRicks将数据摄取到DataLake中,并将其全部转换为标准格式,即拼花地板。因此,我们将有一个原始数据层和一个干净/标准化的数据层

当源系统是DB或分隔文件时,它(相对)比较容易,但在某些情况下,我们将使用excel源。我一直在用
com.crealytics.spark.excel
测试转换过程,这是可以的,因为我们可以推断模式,但它无法迭代多个工作表,也无法获得工作表名称列表,以便我迭代将每个工作表转换为单个文件

我需要这是尽可能动态的,以便我们可以摄取几乎任何文件,无论其类型或模式

有人知道做这件事的其他方法吗?如果有必要,我愿意离开Databrick,比如带有自定义C#脚本的Azure批处理


提前谢谢

由于您的目标是将数据存储在Azure data Lake中,另一种方法可能是使用带有自定义Excel提取器的Azure data Lake Analytics。然后U-SQL可以将其转换为拼花地板。有关Excel提取器的示例,请参见

您希望Excel工作表的可变性有多大


这里的主要问题是很难完全不区分模式,特别是当您有许多列时。要处理模式的可变性,您可以更改提取器,将列作为键/值对输出,或者(如果列的数量和行的大小合理的话)作为
SqlMap
(或者针对不同的目标类型输出一些列)。尽管在创建拼花地板之前,您可能需要将其转换为列格式,这需要第二个脚本来创建旋转脚本或一些自定义输出(而不是内置拼花地板输出)。

因为您的目标是将数据存储在Azure data Lake中,另一种方法可能是将Azure Data Lake Analytics与自定义Excel提取器一起使用。然后U-SQL可以将其转换为拼花地板。有关Excel提取器的示例,请参见

您希望Excel工作表的可变性有多大

这里的主要问题是很难完全不区分模式,特别是当您有许多列时。要处理模式的可变性,您可以更改提取器,将列作为键/值对输出,或者(如果列的数量和行的大小合理的话)作为
SqlMap
(或者针对不同的目标类型输出一些列)。尽管在创建拼花地板之前,您可能需要将其旋转为列格式,这可能需要第二个脚本来创建旋转脚本或一些自定义输出(而不是内置拼花输出)