我正在使用python 2.7运行Spark 2.4.4,IDE是pycharm。
输入文件包含编码值的某个列,如下所示。
.ʽ|!3-2-704A------------ (dotted line is space)
我试图得到这样的结果
3-2-704A
我尝试了下面的代码。
from pyspark.sql import SparkSession
spark = SparkSession
.builder
.appName("Python Spark")
.config("spark.some.config.option", "some-value")
.getOrCreate()
df = spark.read.csv("Customers_v01.csv",header=True,sep=",");
myres = df.map(lambda x :x[1].decode('utf-8'))
print(myres.collect())
错误:
myres = df.map(lambda x :x[1].decode('utf-8'))
File "C:sparkpythonpysparksqldataframe.py", line 1301, in __getattr__
"'%s' object has no attribute '%s'" % (self.__class__.__name__, name))
AttributeError: 'DataFrame' object has no attribute 'map'
我不确定是什么原因导致此错误....请帮忙。有没有其他方法可以做到这一点。
map 在弹性分布式数据集 (RDD( 上可用
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("Python Spark").getOrCreate()
df = spark.read.csv("Customers_v01.csv", header=True, sep=",", encoding='utf-8')
myres = df.rdd.map(lambda x: x[1].encode().decode('utf-8'))
print(myres.collect())