sha*_*ker 6 scala apache-spark jupyter-notebook
这可能是一个愚蠢的新手错误,但我在运行我认为是基本 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()
Run Code Online (Sandbox Code Playgroud)
错误:
<console>:1: error: illegal start of definition
.limit(5)
^
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
And*_*kin 10
对 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())
Run Code Online (Sandbox Code Playgroud)
Jupyter 会尝试将每一行解释为一个完整的命令,因此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()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3354 次 |
最近记录: |