[英]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對象之間的差異嗎?
無需使用SparkContext
和SparkSession
來初始化Spark。 SparkSession
是較新的推薦使用方式。
要初始化您的環境,只需執行以下操作:
spark = SparkSession\
.builder\
.appName("test_import")\
.getOrCreate()
您可以執行以下操作來運行SQL命令:
spark.sql(...)
在Spark 2.0.0之前,使用了三個獨立的對象: SparkContext
, SQLContext
和HiveContext
。 這些是分開使用的,具體取決於您想要做什么以及使用的數據類型。
隨着數據集/數據幀抽象的SparkSession
, SparkSession
對象成為Spark環境的主要入口點。 通過首先初始化SparkSession
(例如在名為spark
的變量中)然后執行spark.sparkContext
/ spark.sqlContext
仍然可以訪問其他對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.