csv - oozie-在配置单元操作中使用存档文件

标签 csv hadoop hive oozie unzip

在Oozie Hive2 Action 中,我试图从压缩的.zip文件中的'.csv'文件加载 hive 表。为了通过Oozie Hive操作工作流读取* .zip内的文件,Hive操作提供了“存档”标签元素。只需在“archive”标签元素中声明Zip文件,如下所示,

<archive>${ZipfilePath}#unzipFile</archive>

“archive”元素中“#”之后的引用是读取未压缩文件的临时文件夹的名称。可以通过引用路径“ unzipFile /.csv”来读取.zip内的.csv文件。

问题是-配置单元操作无法找到归档元素中引用的路径。默认情况下,Hive在“hdfs:// nameservice1 / user / hive /”位置查找解压缩文件夹,错误为
"Error: Error while compiling statement: FAILED: SemanticException Line     1:17 Invalid path ''unzipFile/file.csv'': No files matching path hdfs://nameservice1/user/hive/unzipFile/file.csv (state=42000,code=40000"

但是,我能够使用shell操作成功测试“归档”标签
并将文件“cat”为
cat unzipFile/file.csv

最佳答案

由于Oozie配置单元操作在群集中而不是在边缘节点上运行,因此所有支持文件都必须位于hdfs路径中。那就是 hive Action 本身将在运行时在Oozie选择的任何节点中运行。将文件上传到hdfs路径,以便可以从群集中的任何节点进行访问

关于csv - oozie-在配置单元操作中使用存档文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39167216/

相关文章:

php - 使用php将excel文件中的印地文字体添加到数据库中

hadoop - Storm hdfs如何写入不同的文件路径

algorithm - 关于网页排名的疑问

hive - 我们可以在配置单元中的 'show partitions tableName' 上使用限制原因吗

C++ - 读入以逗号分隔的文件行

python - Mock_open CSV 文件未获取任何数据

mysql - 即使连接参数中提供了远程服务器 IP,Sqoop 导入也始终尝试连接到本地 mysql

hadoop - Mapreduce 在访问 master 机器上的 datanode 时返回错误

hadoop - Cloudera/Hive - 主机名更改后无法访问表

python - 递归地将子文件夹中的文件读取到列表中,并将每个子文件夹的文件合并到每个子文件夹的一个 csv 中