java中void的作业_java.lang.NullPointerException:writeSupportClass在火花流作业中写入实地标文件时不应该为空...

readyToSave.foreachRDD((VoidFunction>) rdd -> {

Configuration configuration = rdd.context().hadoopConfiguration();

Job job = Job.getInstance(configuration);

ParquetOutputFormat.setWriteSupportClass(job, ProtoWriteSupport.class);

ProtoParquetOutputFormat.setProtobufClass(job, MyProtoRecord.class);

rdd.saveAsNewAPIHadoopFile("path-to-hdfs", Void.class, MyProtoRecord.class, ParquetOutputFormat.class, configuration);

});

,我得到以下异常:

java.lang.NullPointerException: writeSupportClass should not be null

at parquet.Preconditions.checkNotNull(Preconditions.java:38)

at parquet.hadoop.ParquetOutputFormat.getWriteSupport(ParquetOutputFormat.java:326)

at parquet.hadoop.ParquetOutputFormat.getRecordWriter(ParquetOutputFormat.java:272)

at parquet.hadoop.ParquetOutputFormat.getRecordWriter(ParquetOutputFormat.java:262)

at org.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsNewAPIHadoopDataset$1$$anonfun$12.apply(PairRDDFunctions.scala:1112)

at org.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsNewAPIHadoopDataset$1$$anonfun$12.apply(PairRDDFunctions.scala:1095)

at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:70)

at org.apache.spark.scheduler.Task.run(Task.scala:86)

at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:274)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at java.lang.Thread.run(Thread.java:745)

我怎么能解决问题呢?

2017-06-14

Mohammad

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值