我们有2个集群,一个是Map R,另一个是我们自己的集群。我们希望使用Map R数据在我们自己的硬件中创建新的设置。
上面的步骤没有错误地传递,但是当我查询分区时,作业失败并出现以下错误
java.lang.IllegalArgumentException: Buffer size too small. size = 262144 needed = 4958903
at org.apache.hadoop.hive.ql.io.orc.InStream$CompressedStream.readHeader(InStream.java:193)
at org.apache.hadoop.hive.ql.io.orc.InStream$CompressedStream.read(InStream.java:238)
有人可以告诉我,我们可以直接从orc文件创建HIVE ORC分区表吗?
我的存储空间是Azure数据湖。
答案 0 :(得分:0)
根据您的描述,根据我的理解,我认为您希望将所有orc文件从群集复制到另一个,并将这些orc文件作为hive表加载。
为此,请尝试按照以下命令创建用于加载orcfile数据的外部表。
CREATE EXTERNAL TABLE IF NOT EXSISTS <table name> (<column_name column_type>, ...)
ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.orc.OrcSerde'
STORED AS ORC
LOCATION '<orcfile path>'
如果不知道orc文件的列列表,可以参考Hive手册ORC File Dump Utility
以{J}格式通过hive --orcfiledump -j -p <location-of-orc-file-or-directory>
打印ORC文件元数据。