[英]After inserting data into mysql, its showing IterableWrapper(non-empty Iterator) instead of String in Spark Java
我試圖通過foreachpartition在MySQL數據庫中插入String,但是在插入它之后,它顯示的是IterableWrapper(non-empty Iterator)而不是String。
public class Insert {
transient static SparkConf ss;
transient static JavaSparkContext spc;
public static void main(String gg[])
{
ss=new SparkConf().setAppName("insert").setMaster("local");
spc=new JavaSparkContext(ss);
JavaRDD<String> rbm=spc.textFile("/home/amd/gg/out5/aa");
// DataFrame jdbcDF =sqlContext.jdbc(options.get("url"),options.get("dbtable"));
// System.out.println("Data------------------->" + jdbcDF.toJSON().first());
try {
rbm.foreachPartition(new VoidFunction<Iterator<String>>() {
public void call(Iterator<String> x) throws Exception {
// TODO Auto-generated method stub
{
Connection conn= (Connection) DriverManager.getConnection("jdbc:mysql://localhost/testing","root","amd@123");
PreparedStatement del = (PreparedStatement) conn.prepareStatement ("INSERT INTO rtl (rtl_s) VALUES(?)");
while (x.hasNext()) {
//這里顯示正確的字符串,但是在mysql中顯示不同的東西。
String y=x.next();
System.out.println(x);
del.setString(1, y);
del.executeUpdate();
}
**//After inserting data to mysql it is giving IteratorWrapper instead of String.**
conn.close();
}
}
});
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
**I am getting the IterableWrapper(non-empty Iterator) in mysql database instead of String.**
實際上,我遇到了錯誤,因為某些RDD為空。 然后,您需要使用coalesce(1)....
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.