从镶木地板文件创建Hive表并加载数据

问题描述:

我发现很难将镶木地板文件加载到配置单元表中。我正在致力于Amazon EMR集群和Spark处理数据。但我需要阅读输出地板文件来验证我的转换。我有以下模式的实木复合地板的文件:从镶木地板文件创建Hive表并加载数据

root 
|-- ATTR_YEAR: long (nullable = true) 
|-- afil: struct (nullable = true) 
| |-- clm: struct (nullable = true) 
| | |-- amb: struct (nullable = true) 
| | | |-- L: string (nullable = true) 
| | | |-- cdTransRsn: string (nullable = true) 
| | | |-- dist: struct (nullable = true) 
| | | | |-- T: string (nullable = true) 
| | | | |-- content: double (nullable = true) 
| | | |-- dscStrchPurp: string (nullable = true) 
| | |-- amt: struct (nullable = true) 
| | | |-- L: string (nullable = true) 
| | | |-- T: string (nullable = true) 
| | | |-- content: double (nullable = true) 
| | |-- amtTotChrg: double (nullable = true) 
| | |-- cdAccState: string (nullable = true) 
| | |-- cdCause: string (nullable = true) 

如何使用这种类型的模式我创建蜂巢外部表和拼花文件加载到该配置单元表进行分析?

您可以使用Catalog.createExternalTable(2.2之前的Spark)或Catalog.createTable(Spark 2.2及更高版本)。

Catalog实例可以使用SparkSession访问:

val spark: SparkSession 
spark.catalog.createTable(...) 

会议应与蜂巢支持初始化功能。

+0

我不知道什么放在createTable(...这里...)。我只有木地板文件,并没有单独存储架构/元数据文件。我可以用这些镶木地板文件创建一个数据框,并在我的问题中粘贴printSchema()。现在如何创建表?在蜂巢中使用这种类型的嵌套模式是我的问题? – qubiter