Java 返回loginName+“,“+countyCode+”,“+passwd” +“,”+areaId+“,“+cityNo+”,“+cardID” +“,”移动+“,”电子邮件+“,”qq+“,” +地址+”,“+生日+”,“+”,“+生日1 +“,”+codeId+“,“+deptNo+”,“+newCode +“,”+旧代码; } }); 数据集peopleDF=spark.createDataFrame(resultRDD,Object.class); 字符串url2=“jdbc:oracle:thin:@192.168.101.207:1521:orcl”; Properties connectionProperties2=新属性(); connectionProperties2.setProperty(“用户”、“斯科特”);//设置用户名 connectionProperties2.setProperty(“密码”、“老虎”);//设置密码 字符串table2=“masked1”; peopleDF.write().mode(SaveMode.Append) .jdbc(url2,表2,连接属性2); } }
使用编码器/模式将输入数据帧转换为数据集后,为了执行映射操作,您无需将数据集转换回RDD,您可以自己在数据集上进行映射,下面的代码可能对您有用Java 返回loginName+“,“+countyCode+”,“+passwd” +“,”+areaId+“,“+cityNo+”,“+cardID” +“,”移动+“,”电子邮件+“,”qq+“,” +地址+”,“+生日+”,“+”,“+生日1 +“,”+codeId+“,“+deptNo+”,“+newCode +“,”+旧代码; } }); 数据集peopleDF=spark.createDataFrame(resultRDD,Object.class); 字符串url2=“jdbc:oracle:thin:@192.168.101.207:1521:orcl”; Properties connectionProperties2=新属性(); connectionProperties2.setProperty(“用户”、“斯科特”);//设置用户名 connectionProperties2.setProperty(“密码”、“老虎”);//设置密码 字符串table2=“masked1”; peopleDF.write().mode(SaveMode.Append) .jdbc(url2,表2,连接属性2); } },java,apache-spark,Java,Apache Spark,使用编码器/模式将输入数据帧转换为数据集后,为了执行映射操作,您无需将数据集转换回RDD,您可以自己在数据集上进行映射,下面的代码可能对您有用 Dataset<InputType> inputDataSet =someDataFrame.as(Encoders.bean(InputType.class)) Dataset<OutputType> outputDataSet=inputDataSet.map(new MapFunction<InputType, Ou
Dataset<InputType> inputDataSet =someDataFrame.as(Encoders.bean(InputType.class))
Dataset<OutputType> outputDataSet=inputDataSet.map(new MapFunction<InputType, OutputType>() {
@Override
public OutputType call(InputType value) throws Exception {
// TODO Auto-generated method stub
val someOutPutVal:OutputType=null;
return someOutPutVal;
}
}, Encoders.bean(OutputType.class));
Dataset inputDataSet=someDataFrame.as(Encoders.bean(InputType.class))
Dataset outputDataSet=inputDataSet.map(新的MapFunction(){
@凌驾
公共输出类型调用(输入类型值)引发异常{
//TODO自动生成的方法存根
val someOutPutVal:OutputType=null;
返回someOutPutVal;
}
},Encoders.bean(OutputType.class));
如果您真的想使用Person.class进行转换,那么您需要定义一个pojo:为要包含在Person对象中的字段创建一个名为Person的新java类,其中包含getter和setter、hashcode和equals、toString()方法。就这么简单,然后您可以应用spark.createDataFrame(peopleRDD,Person.class)代码>
或者:当您获得所有字段时,将其直接打包到一个人中
公共字符串调用(行){}
。。。在此处直接创建Person对象:
public Person call(Row row) {}
然后您将有一个javarddresultrdd
。。直接的
Dataset<InputType> inputDataSet =someDataFrame.as(Encoders.bean(InputType.class))
Dataset<OutputType> outputDataSet=inputDataSet.map(new MapFunction<InputType, OutputType>() {
@Override
public OutputType call(InputType value) throws Exception {
// TODO Auto-generated method stub
val someOutPutVal:OutputType=null;
return someOutPutVal;
}
}, Encoders.bean(OutputType.class));
public Person call(Row row) {}