这可能是一个愚蠢的新手错误,但是运行我认为是基本的Scala代码(在Spark笔记本中,通过Jupyter笔记本)时出现错误:
val sampleDF = spark.read.parquet("/data/my_data.parquet")
sampleDF
.limit(5)
.write
.format("jdbc")
.option("url", "jdbc:sqlserver://sql.example.com;database=my_database")
.option("dbtable", "my_schema.test_table")
.option("user", "foo")
.option("password", "bar")
.save()
错误:
<console>:1: error: illegal start of definition
.limit(5)
^
我究竟做错了什么?
最佳答案
对jupyter内部没有任何了解,但是我怀疑这是来自jupyter-repl交互的产物。出于某些原因,sampleDF
本身被视为完整的语句。尝试
(sampleDF
.limit(5)
.write
.format("jdbc")
.option("url", "jdbc:sqlserver://sql.example.com;database=my_database")
.option("dbtable", "my_schema.test_table")
.option("user", "foo")
.option("password", "bar")
.save())
关于Scala Spark-非法开始定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51270747/