使用懒惰的简单serde hive替换引号

时间:2014-08-20 07:59:01

标签: hadoop hive

您好我正在处理许多文件,这些文件在数据中有引号,如下所示。

“ID” | “学生” | “等级” “123” | “约翰” | “9.7” “132” | “约翰尼” | “8.7” “143” | “罗尼” | “8.17”

我想从数据中删除引号,请您告诉我它是如何完成的。如果完全使用任何内置的serdes将是有帮助的。因为我正在处理许多这样的文件。

1 个答案:

答案 0 :(得分:1)

将此数据加载到临时配置表中。然后在插入表格时使用regex_replace()函数。

步骤:

  1. 将数据加载到具有类似架构的临时表中。
  2. 使用regex_replace()将覆盖插入到最终表中。

    insert overwrite table select    regexp_replace(COLUMN_NAME_1,"\"",""),regexp_replace(COLUMN_NAME_2,"\"","") from temp_hive_table;
    
  3. 已更新:

    对于许多文件。

    1. 将临时表定义为外部表。
    2. 将所有源文件复制到此hdfs路径。
    3. 使用regex_replace()将覆盖插入到所需的表中。
    4. 希望这种方法有所帮助。