前言隶属于专栏《Spark异常问题汇总》。 这个专栏是笔者原创的。 引用请注明来源。 不足和错误请在评论区指出。 谢谢你。
本栏的目录结构和参考文献请参照Spark异常问题的总结
正文问题说明Spark编译错误:
错误: (34, 25 ) overloadedmethodforeachbatchwithalternatives : (function : org.Apache.spark.API.Java.function.void function Java.lang.long (org.Apache.spark.SQL.streaming.data streamwriter [ org.Apache.spark.SQL.row ] (功能: (org.Apache.spark.SQL.dataset [ org.Apache.spark.SQL.row ], Scala.long(=unit ) ) org.Apache.spark.SQL.streaming.data streamwriter [ org.Apache.spark.SQL.row ] cannot ber Scala.long (=org.Apache.spark.SQL.data frame ) askdf.writestream.foreachbatch () ask df :数据帧
val properties=new Java.util.properties () properties.setproperty ) ' user ', ' root ' ) properties.setproperty ) ' root ' ) ) properties.setprty ) ' 123456 ' ) valquery=word counts.write stream .=0) { ds.cache () ds.write.JSON (path _ prefixbatchid ) ds.write.mode (save mode.overwrite ).jdbc ) jdbc ) )。 spark_bigdata_analyze ',' t_word_count ',properties(ds.unpersist ) start ) query.awaittermining
根据Scala 2.12的更改,DataStreamWriter.foreachBatch方法需要更新代码。 如果不更新,就会发生这种模糊。
在这里,可以看到以下两个foreachBatch方法:
3359 spark.Apache.org/docs/latest/API/Java/org/Apache/spark/SQL/streaming/data streamwriter.html
要解决此问题,请使用scala 2.11替代,或参阅解决此问题的链接。
3359 docs.data bricks.com/release-notes/runtime/7.0.html
代码更改val properties=new Java.util.properties () properties.setproperty ()、(root )、properties.setproperty () )、和roper properties.set property 65 ' 123456 ' ) valquery=word counts.write stream.output mode (complete ).foreachbatch () ds 333333 Batataset properties ().start ) (query.awaitTermination ) (privatedefmyfunc ) ds3360dataset[row],batchID: Long,=0) { ds.cache () ds.write.JSON (path _ prefixbatchid ) ds.write.mode (save mode.overwrite ).jdbc ) jdbc ) )。 spark_bigdata_analyze ',' t_word_count ',properties(ds.unPersist ) }