Hadoop 删除输入文件中不必要的\n

标签 hadoop input split

我有一个很大的输入文件,值是用管道分隔的。并且连续有 20 个值。在第 19 个管道之后,如果出现换行符,则为记录。

但是我的输入文件不仅在 19 个管道之后而且在其他值中都有\n 。示例行看起来像这样......

101101|this\nis my sample|12547|sample\nxyz|......(第 19 管道)|记录结束\n

我是 Hadoop 新手,我不知道如何根据此条件划分行以创建键值对。

我遇到的另一个相关问题是,输入拆分发生在客户端,如果我必须在客户端(一台机器)有条件地拆分输入文件,考虑到大文件,它会不会很慢?请帮忙。

最佳答案

在 Hive 中,NULL 列值表示为“\N”,这是 Hive 的默认行为。这样做是为了区分 NULL 和“NULL”(字符串 NULL)。

如果您不希望\N 出现在您的导出中,您可以使用 COALESCE UDF。

大致您的查询可能如下所示


SELECT
   COALESCE (my_column, '') AS my_column
FROM
   my_table

关于Hadoop 删除输入文件中不必要的\n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25125641/

相关文章:

hadoop - 将路径文件加载到分区表

c - 如何同时接受字符串输入?

php - PHP 中的 "Function split() is deprecated"?

javascript - 分割包含选项的数据字符串

hadoop - Pig Latin 中的分组

hadoop - HDFS 和小文件 - 第 2 部分

C 控制台输入

javascript - jquery javascript 问题

java - 是否可以使用Java检查hadoop集群是否启用了yarn?

python - 语法错误: unexpected EOF while parsing input commands