也许这个问题是微不足道的,但是我从Pyspark的本地目录读取CSV时会遇到问题。
我尝试了,
from pyspark.sql.types import *
from pyspark.sql import Row
from pyspark import SparkContext as sc
mydata = sc.textFile("/home/documents/mydata.csv")
newdata = mydata.map(lambda line: line.split(","))
但是遇到一个错误,
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unbound method textFile() must be called with SparkContext instance as first argument (got str instance instead)
现在我的问题是在此之前我已经打电话给SparkContext
。那我为什么会遇到这样的错误?请指导我缺少的地方。
你不 import SparkContext as sc
:
- 在 Interactive 用法(即Pyspark Shell),
sc
已经初始化,因此sc.textFile()
应该正常工作 -
在独立应用中,您应首先初始化
sc
:from pyspark import SparkContext sc = SparkContext("local", "Simple App")
SparkContext()
中的参数 - 有关更多详细信息,请参见提供的链接。
最后,Spark 1.X无法将CSV文件本身读取到DataFrames中 - 您将需要Spark CSV外部软件包。您可能会发现我一段时间以前为Spark 1.5撰写的相关博客文章有用...