SparkSession 初始化错误 - 无法使用 spark.read
SparkSession initialization error - Unable to use spark.read
我尝试创建一个独立的 PySpark 程序来读取 csv 并将其存储在配置单元中 table。我在配置 Spark session、会议和上下文 object 时遇到问题。这是我的代码:
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' object has no attribute 'read'
配置 spark session object 以使用 read.csv 命令的正确方法是什么?另外,有人可以解释 Session、Context 和 Conference objects 之间的区别吗?
不需要同时使用SparkContext
和SparkSession
来初始化Spark。 SparkSession
是较新的推荐使用方式。
要初始化您的环境,只需执行以下操作:
spark = SparkSession\
.builder\
.appName("test_import")\
.getOrCreate()
您可以通过执行 运行 SQL 命令:
spark.sql(...)
在 Spark 2.0.0 之前,使用了三个独立的对象:SparkContext
、SQLContext
和 HiveContext
。根据您要执行的操作和使用的数据类型,分别使用它们。
随着 Dataset/DataFrame 抽象的引入,SparkSession
对象成为 Spark 环境的主要入口点。仍然可以通过首先初始化一个 SparkSession
(比如在一个名为 spark
的变量中)然后执行 spark.sparkContext
/spark.sqlContext
.
来访问其他对象
我尝试创建一个独立的 PySpark 程序来读取 csv 并将其存储在配置单元中 table。我在配置 Spark session、会议和上下文 object 时遇到问题。这是我的代码:
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' object has no attribute 'read'
配置 spark session object 以使用 read.csv 命令的正确方法是什么?另外,有人可以解释 Session、Context 和 Conference objects 之间的区别吗?
不需要同时使用SparkContext
和SparkSession
来初始化Spark。 SparkSession
是较新的推荐使用方式。
要初始化您的环境,只需执行以下操作:
spark = SparkSession\
.builder\
.appName("test_import")\
.getOrCreate()
您可以通过执行 运行 SQL 命令:
spark.sql(...)
在 Spark 2.0.0 之前,使用了三个独立的对象:SparkContext
、SQLContext
和 HiveContext
。根据您要执行的操作和使用的数据类型,分别使用它们。
随着 Dataset/DataFrame 抽象的引入,SparkSession
对象成为 Spark 环境的主要入口点。仍然可以通过首先初始化一个 SparkSession
(比如在一个名为 spark
的变量中)然后执行 spark.sparkContext
/spark.sqlContext
.