TypeError: элемент в поле массива - PullRequest
0 голосов
/ 03 июля 2018

Я читаю csv-файл, используя Pandas, это двухбалочный фрейм данных, а затем я пытаюсь преобразовать его в спрей фрейма данных. Код для этого:

from pyspark.sql import SQLContext
sqlCtx = SQLContext(sc)
sdf = sqlCtx.createDataFrame(df)

Фрейм данных:

print(df) 

дает это:

    Name    Category
0   EDSJOBLIST apply at www.edsjoblist.com  ['biotechnology', 'clinical', 'diagnostic', 'd...
1   Power Direct Marketing  ['advertising', 'analytics', 'brand positionin...
2   CHA Hollywood Medical Center, L.P.  ['general medical and surgical hospital', 'hea...
3   JING JING GOURMET   [nan]
4   TRUE LIFE KINGDOM MINISTRIES    ['religious organization']
5   fasterproms ['microsoft .net']
6   STEREO ZONE ['accessory', 'audio', 'car audio', 'chrome', ...
7   SAN FRANCISCO NEUROLOGICAL SOCIETY  [nan]
8   Fl Advisors ['comprehensive financial planning', 'financia...
9   Fortunatus LLC  ['bottle', 'bottling', 'charitable', 'dna', 'f...
10  TREADS LLC  ['retail', 'wholesaling']

Может ли кто-нибудь помочь мне с этим?

1 Ответ

0 голосов
/ 03 июля 2018

Искра может испытывать трудности при работе с object типами данных. Возможный обходной путь - сначала преобразовать все в строку:

sdf = sqlCtx.createDataFrame(df.astype(str))

Одним из следствий этого является то, что все, включая nan, будет преобразовано в строку. Вам нужно будет позаботиться о том, чтобы правильно обработать эти преобразования и привести столбцы к соответствующему типу.

Например, если у вас есть столбец "colA" со значениями с плавающей запятой, вы можете использовать что-то вроде следующего для преобразования строки "nan" в null:

from pyspark.sql.functions import col, when
sdf = sdf.withColumn("colA", when(col("colA") != "nan", col("colA").cast("float")))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...