我在IntelliJ上使用Scala API开发了Spark代码,当我运行此代码时,出现以下错误,但在Databricks笔记本上却运行良好。
我正在使用Databricks Connect将IntelliJ的本地安装连接到Databricks Spark群集。我已连接到群集,并且也能够将作业从IntelliJ提交到群集。 AMOF,除以下内容外,其他所有功能都可以使用。
DBConnect是6.1,Databricks运行时是6.2 从群集导入了jar文件(使用Databricks-connect get-jar-dir),并在项目库中使用jar设置了SBT项目
源代码:
val sparkSession = SparkSession.builder.getOrCreate()
val sparkContext = sparkSession.sparkContext
import sparkSession.implicits._
val v_textFile_read = sparkContext.textFile(v_filename_path)
v_textFile_read.take(2).foreach(println)
错误:
cannot assign instance of scala.Some to field org.apache.spark.rdd.RDD.org$apache$spark$rdd$RDD$$dependencies_ of
type scala.collection.Seq in instance of org.apache.spark.rdd.HadoopRDD
我将RDD阅读器用于文本的原因是,我可以将此输出传递给createDataFrame API。如您所知,createdataframe API将RDD和模式作为输入参数。
步骤1:val v_RDD_textFile_read = sparkContext.textFile(v_filename_path).map(x => MMRSplitRowIntoStrings(x))
第2步:val v_DF_textFile_read = sparkSession.sqlContext.createDataFrame(v_RDD_textFile_read, v_schema)
(已编辑