在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/