SqlContext 导入和并行化 Pyspark 中的错误

Posted

技术标签:

【中文标题】SqlContext 导入和并行化 Pyspark 中的错误【英文标题】:Error in SqlContext import and parallelize Pyspark 【发布时间】:2018-03-19 11:29:42 【问题描述】:
line = "Hello, world"
sc.parallelize(list(line)).collect()

我得到以下错误

TypeError: parallelize() missing 1 required positional argument: 'c'

从只有一列的字符串列表创建数据框时,我还有一个问题:

from pyspark.sql.types import *
from pyspark.sql import SQLContext
sqlContext = SQLContext(sc)
schema = StructType([StructField("name", StringType(), True)])
df3 = sqlContext.createDataFrame(fuzzymatchIntro, schema)
df3.printSchema()

我收到以下错误:

----> 3 sqlContext = SQLContext(sc)
AttributeError: type object 'SparkContext' has no attribute '_jsc'

提前谢谢你

【问题讨论】:

你是如何创建sc的? from pyspark.context import SparkContext from pyspark.sql.session import SparkSession sc = SparkContext spark = SparkSession.builder.appName("DFTest").getOrCreate() 【参考方案1】:

查看您上面的评论,您似乎以错误的方式初始化sparkContext,就像您所做的那样

from pyspark.context import SparkContext from pyspark.sql.session import SparkSession sc = SparkContext spark = SparkSession.builder.appName("DFTest").getOrCreate()

正确的做法是

from pyspark.sql.session import SparkSession
spark = SparkSession.builder.appName("DFTest").getOrCreate()
sc = spark.sparkContext

spark对象可以做sqlContext的工作

【讨论】:

以上是关于SqlContext 导入和并行化 Pyspark 中的错误的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 map 函数正确并行运行 pyspark 代码

通过 JDBC 进行并行化 - Pyspark - 并行化如何使用 JDBC 工作?

了解 PySpark 中的 RDD(来自并行化)

`pyspark.sql.SparkSession.sql` 和 `SQLContext.read.format()` 有啥区别?

Pyspark:如何在 HDFS 中并行化多 gz 文件处理

如何使 pyspark 作业在多个节点上正确并行化并避免内存问题?