如何使用 pyspark 在 Spark 2.0 中构建 sparkSession?

新手上路,请多包涵

我刚刚获得了 spark 2.0 的访问权限;到目前为止,我一直在使用 spark 1.6.1。有人可以帮我使用pyspark(python)设置sparkSession吗?我知道网上提供的 scala 示例是相似的( 在这里),但我希望能直接使用 python 语言进行演练。

我的具体情况:我在 zeppelin spark notebook 中从 S3 加载 avro 文件。然后构建 df 并从中运行各种 pyspark 和 sql 查询。我所有的旧查询都使用 sqlContext。我知道这是不好的做法,但我开始我的笔记本

sqlContext = SparkSession.builder.enableHiveSupport().getOrCreate()

我可以在 avros 中阅读

mydata = sqlContext.read.format("com.databricks.spark.avro").load("s3:...

并构建没有问题的数据框。但是,一旦我开始查询数据帧/临时表,我就会不断收到“java.lang.NullPointerException”错误。我认为这表明存在翻译错误(例如,旧查询在 1.6.1 中有效,但需要针对 2.0 进行调整)。无论查询类型如何,都会发生错误。所以我假设

1.) sqlContext 别名是个坏主意

2.) 我需要正确设置 sparkSession。

因此,如果有人能告诉我这是如何完成的,或者解释他们所知道的不同版本的 spark 之间的差异,我将不胜感激。如果我需要详细说明这个问题,请告诉我。如果令人费解,我深表歉意。

原文由 haileyeve 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 606
1 个回答
spark  = SparkSession.builder\
                  .master("local")\
                  .enableHiveSupport()\
                  .getOrCreate()

spark.conf.set("spark.executor.memory", '8g')
spark.conf.set('spark.executor.cores', '3')
spark.conf.set('spark.cores.max', '3')
spark.conf.set("spark.driver.memory",'8g')
sc = spark.sparkContext

原文由 Aaka sh 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题