如何在Ubuntu中使用JAVA从配置单元导出CSV文件?
我目前正试图通过应用以下代码通过Java导出CSV文件:如何在Ubuntu中使用JAVA从配置单元导出CSV文件?,java,linux,csv,hadoop,Java,Linux,Csv,Hadoop,我目前正试图通过应用以下代码通过Java导出CSV文件: import java.io.BufferedReader; import java.io.InputStreamReader; public class Octave { public static void main(String args[]) { String s; Process p; try { String command = "hadoop fs -cat /user/hive/w
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Octave {
public static void main(String args[]) {
String s;
Process p;
try {
String command = "hadoop fs -cat /user/hive/warehouse/new_cur2/* > /home/leo/new_cur2.csv";
System.out.println(command);
p = Runtime.getRuntime().exec(command);
BufferedReader br = new BufferedReader(
new InputStreamReader(p.getInputStream()));
while ((s = br.readLine()) != null)
System.out.println("line: " + s);
p.waitFor();
System.out.println ("exit: " + p.exitValue());
p.destroy();
} catch (Exception e) {}
System.out.println("finish1");
}
}
但它不会导出,我正在尝试通过执行terminal命令导出,请问有人知道如何解决它吗?
此外,尝试这样做也不会奏效:
p = Runtime.getRuntime().exec(string[]{"hadoop", "fs", "-cat", "/user/hive/warehouse/new_cur2/*", ">", "/home/leo/new_cur2.csv"});
有错误/例外吗?很可能它无法定位“hadoop”脚本。此外,您还应该使用hadoop hdfs java API进行此操作。没有错误/异常,实际显示了注意事项。您需要像读取
p.getInputStream()
一样读取过程的错误流。为什么要使用java进行此操作?难道不能使用一个简单的hdfs-dfs-get
?另外,Hadoop有一个专用的JAVA API用于读/写操作。Hive也有一个JDBC驱动程序,所以如果你真的想迭代一系列记录,你可以在一个标准的ResultSet
。。。