Hive 配置配置单元MR作业的分隔符

Hive 配置配置单元MR作业的分隔符,hive,Hive,有没有办法配置配置配置单元MR作业的分隔符?? 配置单元内部使用的默认分隔符是“配置单元分隔符”(/001)。我的用例是配置分隔符,以便我可以根据需要使用任何分隔符。hadoop中有一个属性“mapred.textoutputformatter.separator”,它将键值分隔符设置为为此属性指定的值。有没有这样的方法来配置配置配置单元中的分隔符?我搜索了很多,但没有得到任何有用的链接。请帮帮我。你可以试试: SELECT (rest of your query) ROW FORMAT DEL

有没有办法配置配置配置单元MR作业的分隔符?? 配置单元内部使用的默认分隔符是“配置单元分隔符”(/001)。我的用例是配置分隔符,以便我可以根据需要使用任何分隔符。hadoop中有一个属性“mapred.textoutputformatter.separator”,它将键值分隔符设置为为此属性指定的值。有没有这样的方法来配置配置配置单元中的分隔符?我搜索了很多,但没有得到任何有用的链接。请帮帮我。

你可以试试:

SELECT (rest of your query)
ROW FORMAT DELIMITED
    FIELDS TERMINATED BY 'YourChar' (example: FIELDS TERMINATED BY '\t')

从hive-0.11.0开始,您可以编写

INSERT OVERWRITE LOCAL DIRECTORY '...'
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
SELECT ...

有关完整的语法,请参阅。

您也可以使用:-

ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES ('field.delim'='-','serialization.format'='-')

这将使用-delimiter分隔列,但它是特定于LazSimpleSerde

的。我猜您正在使用插入覆盖目录选项写入hdfs文件。
如果您在hdfs文件的顶部创建一个没有分隔符的配置单元表,它将使用“\001”作为分隔符,因此您可以从配置单元表中读取该文件,而不会出现任何问题

如果源表dnt在create schema语句中未指定分隔符,则您将无法更改该分隔符。您的op将始终包含默认值。是的,分隔符将由源表的createschema控制。所以这也不是可配置的。
我也遇到了类似的问题,在完成hive MR工作后,第二步修改了001。

感谢您的快速响应。但这里的问题是,我们正在将蜂窝MR o/p写入dfs位置。如果配置单元使用的分隔符为“\001”,那么可能有一些方法可以显式配置它,比如设置一些属性,。。