概述
Java程序中产生的数据,如果导入oracle或者mysql库,可以通过jdbc连接insert批量操作完成,但是当前版本的hive并不支持批量insert操作,因为需要先将结果数据写入hdfs文件,然后插入Hive表中。
package com.enn.idcard;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
/**
* <p>Description: </p>
* @author kangkaia
* @date 2017年12月26日 下午1:42:24
*/
public class HiveJdbc {
public static void main(String[] args) throws IOException {
List<List> argList = new ArrayList<List>();
List<String> arg = new ArrayList<String>();
arg.add("12345");
arg.add("m");
argList.add(arg);
arg = new ArrayList<String>();
arg.add("54321");
arg.add("f");
argList.add(arg);
// System.out.println(argList.toString());
String dst = "/test/kk.txt";
createFile(dst,argList);
loadData2Hive(dst);
}
/**
* 将数据插入hdfs中,用于load到hive表中,默认分隔符是"