在 pyspark (1.6.0) 中读取 csv 文件
Reading a csv file in pyspark (1.6.0)
也许问题很简单,但我在从 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 usage(即pyspark shell)中,
sc
已经初始化,所以sc.textFile()
应该可以正常工作
在self-contained applications中,你应该先初始化sc
:
from pyspark import SparkContext
sc = SparkContext("local", "Simple App")
SparkContext()
中的参数很重要 - 请参阅提供的链接了解更多详细信息。
最后,Spark 1.x 无法将 CSV 文件本地读取到数据帧中 - 您将需要 Spark CSV external package. You may find a relevant blog post 我前段时间为 Spark 1.5 写的有用...
也许问题很简单,但我在从 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 usage(即pyspark shell)中,
sc
已经初始化,所以sc.textFile()
应该可以正常工作 在self-contained applications中,你应该先初始化
sc
:from pyspark import SparkContext sc = SparkContext("local", "Simple App")
SparkContext()
中的参数很重要 - 请参阅提供的链接了解更多详细信息。
最后,Spark 1.x 无法将 CSV 文件本地读取到数据帧中 - 您将需要 Spark CSV external package. You may find a relevant blog post 我前段时间为 Spark 1.5 写的有用...