我是Spark的新手。我试图在本地模式(Windows)中使用spark java将csv文件保存为parquet。我有这个错误。另存为火花java中的Parquet文件
产生的原因:org.apache.spark.SparkException:任务失败,而写行
我提到的其他线程和残疾人火花炒作
集( “spark.speculation”, “假”)
我仍然得到错误。我在csv中只使用了两列来进行测试,但仍然出现在这个问题中。
输入:
portfolio_id;portfolio_code
1000042;CHNTESTPF04
1000042;CHNTESTPF04
1000042;CHNTESTPF04
1000042;CHNTESTPF04
1000042;CHNTESTPF04
1000042;CHNTESTPF04
1000042;CHNTESTPF04
我的代码:
JavaPairRDD<Integer, String> rowJavaRDD = pairRDD.mapToPair(new PairFunction<String, Integer, String>() {
private Double[] splitStringtoDoubles(String s){
String[] splitVals = s.split(";");
Double[] vals = new Double[splitVals.length];
for(int i= 0; i < splitVals.length; i++){
vals[i] = Double.parseDouble(splitVals[i]);
}
return vals;
}
@Override
public Tuple2<Integer, String> call(String arg0) throws Exception {
// TODO Auto-generated method stub
return null;
}
});
SQLContext SQLContext;
SQLContext = new org.apache.spark.sql.SQLContext(sc);
Dataset<Row> fundDF = SQLContext.createDataFrame(rowJavaRDD.values(), funds.class);
fundDF.printSchema();
fundDF.write().parquet("C:/test");
请帮助什么,我在这里失踪。
把完整的错误和堆栈跟踪你的问题,谢谢。 – Tim
我通过添加的功能在Tuple2()这样分割解决错误的:public void运行(串T,字符串U){ \t公共Tuple2 <字符串,字符串>呼叫(字符串REC){ \t字符串[] tokens = rec.split(“;”); \t String [] vals = new String [tokens.length];对于(int i = 0; i(tokens [0],tokens [1]); \t}}); –
Ans8
@ Ans8请将您的答案放在答案中并接受它,以便它从“未答复”部分中消失。 –