我需要将Avro文件加载到配置单元。使用以下内容创建表 创建存储为avro位置'hdfs:// host / pathToData'tblproperties('avro.schema.url'='/ hdfsPathTo / schema.avsc')的外部表tblName;
在表格上进行选择时,出现错误 FOUND NULL,EXPECTED STRING 。是否可以加载少量列并查找导致此错误的列数据?
答案 0 :(得分:0)
实际上,您首先需要使用AvroSerDe格式创建指向AVRO文件位置的Hive外部表。 在此阶段,什么都没有加载。外部表只是文件上的掩码。 然后,您可以创建一个内部HIVE表并从外部表中加载数据(预期的列)。
答案 1 :(得分:0)
如果您已经拥有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
您可以使用任何脚本语言或工具的批处理脚本来计划内部表的加载。
希望这会有所帮助:)