我尝试通过Spark SQL终端将数据放入Hive表中。
我基于Avro Schema创建了表.avsc:
CREATE TABLE test_table
ROW FORMAT SERDE
'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
STORED AS INPUTFORMAT
'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
TBLPROPERTIES (
'avro.schema.url'='file:///C:/some_dir/table_schema.avsc');
然后我尝试从存储在HDFS中的Avro文件中加载数据:
LOAD DATA INPATH 'hdfs://localhost:9000/data/test_table.avro' OVERWRITE INTO TABLE test_table;
我收到错误:
Error in query: java.lang.IllegalArgumentException: Wrong FS: hdfs://localhost:9000/data/test_table.avro, expected: file:///;
当我尝试从本地文件系统加载时,它可以工作。
我的 core-site.xml :
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
<final>true</final>
<description>NameNode URI</description>
</property>
</configuration>
如何从存储在HDFS中的文件加载数据?