Scala Spark-非法开始定义

标签 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()

错误:
<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/

相关文章:

python - Python 的 Rpubs 等效项

python - python的数据探索IDE(不包括spyder)

scala - 使用Spark 2.0.2从Kafka读取Avro消息(结构化流)

generics - Scala 集合中的泛型类

scala - 我可以在 Scala 中创建一个使用不同 equals/hashCode/compare 实现的集合吗?

apache-spark - ActorNotFound 异常试图在 Windows 7 上运行 Spark 1.3.1

scala - 如何从 for-comprehension 中删除折叠?

apache-spark - Spark 数据框列命名约定/限制

apache-spark - 如何在 spark yarn 客户端模式下更新 Kerberos 票证?

python - Azure Databricks Jupyter Notebook Python 和 R 在一个单元中