我是新手,并试图将数据帧写入db2表。我得到的错误是:
Exception in thread "main" java.lang.IllegalArgumentException: Can't get JDBC type for struct
我的数据库架构是
localId
effectiveDate
activityDate
inDate
outDate
我为我的db表创建了一个POJO类,就像这样
public class StowageTable {
private long localId;
private Date effectiveDate;
private Date activityDate;
private Date inDate;
private Date outDate;
//setters and getters
}
然后,我基本上读取了一个与db表具有相同模式的csv,如下所示:
JavaRDD dataFromCSV = javaSparkContext.textFile(fileURL);
//The I create a JavaRDD of the POJO type
JavaRDD dataToPOJO = dataFromCSV.map((Function {
String[] fields = line.split(",");
StowageTable st = createNewStowageTable(fields);
return st;
});
//converting the RDD to DataFrame
DataFrame stowageTableDF = sqlContext.createDataFrame(dataToPOJO, StowageTable.class);
//call jdbc persister
persistToTable(stowageTableDF);
我的persistToTable(DataFrame df)方法如下:
private void persistToTable(DataFrame df) {
Class.forName("")//driver here
//skipping a few lines for brevity
df.write().mode(SaveMode.Append).jdbc(url, table, connectionProperties);
}