объект не имеет атрибута «карта» ошибка в pyspark 2.4.4 - PullRequest
0 голосов
/ 22 сентября 2019

я использую spark 2.4.4 с python 2.7, а 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:\spark\python\pyspark\sql\dataframe.py", line 1301, in __getattr__
    "'%s' object has no attribute '%s'" % (self.__class__.__name__, name))
AttributeError: 'DataFrame' object has no attribute 'map'

я не уверен, чтовызвать эту ошибку .... любезно помочь.Есть ли другой способ сделать это.

1 Ответ

1 голос
/ 22 сентября 2019

карта доступна в Resilient Distributed Dataset (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())
...