如何将文本表中的数据(使用多分隔符)插入到Avro表



我注意到,当不使用MultiDelimitSerDe时,我可以在文本表到avro表中使用插入语句。它也适用于以","结尾的行格式分隔字段,即单个字符。

我创建了 2 个表 - 1 个文本表和 1 个 avro 表:

创建表 示例 1(示例字符串、示例

2 字符串、示例 3 字符串 ) 行格式 塞尔德 'org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe' WITH SERDEPROPERTIES ("FIELD.DELIM"="**") 存储为文本文件 ;

创建表 示例 2(示例字符串、示例

2 字符串、示例 3 字符串 ) 存储为 AVRO;

然后我将数据加载到 example1 表中(文件由"**"分隔),即

将数据路径"HDFS 路径"加载到表 EXAMPLE1 中;

示例 1 现在包含数据。我想将数据从示例 1 插入到示例 2。

插入到表格示例 2 从示例 1 中选择 *;

但是,这会给出"返回代码 2"错误。我不知道为什么我无法使用 MultiDelimitSerDe 插入数据,但我可以使用"行格式分隔字段终止者"来执行此操作。但是,我需要使用多分隔符。

谁能帮我?

您是否添加了所需的 JAR 文件?

'org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe' - 确保您具有为此所需的JAR文件(hive_contrib.jar)。

最新更新