我需要将avro文件加载到配置单元。使用以下命令创建表create external table tblname stored as avro location'hdfs://host/pathtodata'tblproperty('avro.schema.url'='/hdfspathto/schema.avsc');在表上执行select操作时,发现一个错误为null,应为字符串。是否可以加载几个列并找出导致此错误的列数据?
dbf7pr2w1#
如果您已经有avro文件,那么将该文件加载到您选择的目录中的hdfs。接下来在目录顶部创建一个外部表。
CREATE EXTERNAL TABLE external_table_name(col1 string, col2 string, col3 string ) STORED AS AVRO LOCATION '<HDFS location>';
接下来,在外部表的顶部创建一个内部配置单元表以加载数据
CREATE TABLE internal_table_name(col2 string, col3 string) AS SELECT col2, col3 FROM external_table_name
您可以使用任何脚本语言或工具中的批处理脚本来计划内部表加载。希望这有帮助:)
qyuhtwio2#
实际上,首先需要创建一个hive外部表,指向avro文件的位置,并使用avroserde格式。在这个阶段,没有加载任何内容。外部表只是文件上的一个掩码。然后可以创建一个内部配置单元表并从外部配置单元表加载数据(预期的列)。
2条答案
按热度按时间dbf7pr2w1#
如果您已经有avro文件,那么将该文件加载到您选择的目录中的hdfs。接下来在目录顶部创建一个外部表。
接下来,在外部表的顶部创建一个内部配置单元表以加载数据
您可以使用任何脚本语言或工具中的批处理脚本来计划内部表加载。
希望这有帮助:)
qyuhtwio2#
实际上,首先需要创建一个hive外部表,指向avro文件的位置,并使用avroserde格式。在这个阶段,没有加载任何内容。外部表只是文件上的一个掩码。然后可以创建一个内部配置单元表并从外部配置单元表加载数据(预期的列)。