Объект 'tuple' не имеет атрибута 'split' - PullRequest
0 голосов
/ 18 мая 2018

снимок экрана

enter image description here

полный снимок экрана

enter image description here

Iобъединились в два RDD, используя pyspark, но, разбивая их и извлекая данные из таблицы, я получаю ошибки ниже

AttributeError: у объекта 'tuple' нет атрибута 'split'

код, над которым я работаю:

orderitems = sc.textFile("/user/zzz/data/retail_db/order_items/part-00000")
orderitemsmap = orderitems.map(lambda oi: (int(oi.split(",")[1]),float(oi.split(",")[4])))
ordersReduce = orderitemsmap.reduceByKey(lambda x,y:x+y)

orders = sc.textFile("/user/zzz/data/retail_db/orders/part-00000")
ordersmap = orders.map(lambda oi:(int(oi.split(",")[0]),oi.split(",")[3]))

orderstatus = ordersReduce.join(ordersmap)

renvStatus = orderstatus.map(lambda oi: oi.split(",")[1]) 
for i in renvStatus.take(10):print i 

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

Только строковый объект имеет метод split.Если ваш объект кортежа (oi?) Является кортежем строки, возможно, вы захотите:

"".join(oi)  # ('a', 'b', 'c') => 'abc'
0 голосов
/ 18 мая 2018

на основе вашего кода вы пытаетесь применить метод split к кортежу.метод split доступен для строк.Таким образом, oi может быть кортежем, и вы можете захотеть получить доступ к элементу кортежа и затем применить разбиение к элементу.Опять же, он будет работать, только если это строка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...