Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex .tsv输出文件未在配置单元中正确导入_Regex_Hadoop_Import_Hive_Hiveql - Fatal编程技术网

Regex .tsv输出文件未在配置单元中正确导入

Regex .tsv输出文件未在配置单元中正确导入,regex,hadoop,import,hive,hiveql,Regex,Hadoop,Import,Hive,Hiveql,我正在尝试以.tsv格式导入配置单元查询结果,但无法正确导入结果。我使用putty终端进行交互。当我在配置单元环境中执行查询时,它会给出正确的结果,但是当我尝试在Hadoop环境中使用以下命令执行查询时,它不会捕获正确的结果 hive -e"select substr(trim(split(column1,'\\|')[1]),1,1), column1, column2, from Table_X" > /home/test1.tsv 可能是因为正则表达式“|”???在从命令提示符执行

我正在尝试以.tsv格式导入配置单元查询结果,但无法正确导入结果。我使用putty终端进行交互。当我在配置单元环境中执行查询时,它会给出正确的结果,但是当我尝试在Hadoop环境中使用以下命令执行查询时,它不会捕获正确的结果

hive -e"select substr(trim(split(column1,'\\|')[1]),1,1), column1, column2, from Table_X" > /home/test1.tsv
可能是因为正则表达式“|”???

在从命令提示符执行时将双反斜杠\\替换为三反斜杠\\\

hive -e "select substr(trim(split('POS1 | 5P0011 | 36EB0395-4A75-49AB-BD9A-71DA1E2C114D |','\\\|')[1]),1,1)"

这几乎肯定与您的配置单元命令的shell解释有关。您是否尝试过删除\escape字符并运行命令?@economy,我尝试过删除\escape charter,但无效。它无法捕获正确的结果。您得到的确切错误是什么?我猜这是因为您试图将其放在/home中,并且您可能没有适当的权限。Hi@GoBrewers14确切的错误是当尝试使用substrtrimsplitcolumn1,“\\\\\”[1],1,1函数提取子字符串时,它不会以tsv或csv格式提取准确的字符串。例如,考虑此示例字符串。POS1 | 5P0011 | 36EB0395-4A75-49AB-BD9A-71DA1E2C114D |我想从字符串5P0011中提取5,该字符串发生在“|”之后,但提取“5”时,我在tsv或csv中导入结果时,它从字符串POS1中提取了“O”,这是错误的。我无法重现您的问题。我正在运行您的查询,它正在将P返回到.tsv文件中。