我有一个很大的输入文件,值是用管道分隔的。并且连续有 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/