簡體   English   中英

SparkSession初始化錯誤 - 無法使用spark.read

[英]SparkSession initialization error - Unable to use spark.read

我嘗試創建一個獨立的PySpark程序,它讀取csv並將其存儲在hive表中。 我在配置Spark會話,會議和上下文對象時遇到問題。 這是我的代碼:

from pyspark import SparkConf, SparkContext
from pyspark.sql import SQLContext, SparkSession
from pyspark.sql.types import *

conf = SparkConf().setAppName("test_import")
sc = SparkContext(conf=conf)
sqlContext  = SQLContext(sc)

spark = SparkSession.builder.config(conf=conf)
dfRaw = spark.read.csv("hdfs:/user/..../test.csv",header=False)

dfRaw.createOrReplaceTempView('tempTable')
sqlContext.sql("create table customer.temp as select * from tempTable")

我收到錯誤:

dfRaw = spark.read.csv(“hdfs:/ user /../ test.csv”,header = False)AttributeError:'Builder'對象沒有屬性'read'

為了使用read.csv命令,哪種配置spark會話對象的正確方法? 另外,有人可以解釋Session,Context和Conference對象之間的差異嗎?

無需使用SparkContextSparkSession來初始化Spark。 SparkSession是較新的推薦使用方式。

要初始化您的環境,只需執行以下操作:

spark = SparkSession\
  .builder\
  .appName("test_import")\
  .getOrCreate()

您可以執行以下操作來運行SQL命令:

spark.sql(...)

在Spark 2.0.0之前,使用了三個獨立的對象: SparkContextSQLContextHiveContext 這些是分開使用的,具體取決於您想要做什么以及使用的數據類型。

隨着數據集/數據幀抽象的SparkSessionSparkSession對象成為Spark環境的主要入口點。 通過首先初始化SparkSession (例如在名為spark的變量中)然后執行spark.sparkContext / spark.sqlContext仍然可以訪問其他對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM