У меня есть вкладка разделенных файл, содержащий строки, какПравильно читать типы из файла в PySpark
id1 name1 ['a', 'b'] 3.0 2.0 0.0 1.0
, то есть идентификатор, имя, список с некоторыми строками, и ряд из 4 атрибутов с плавающей точкой , Я читаю этот файл как
rdd = sc.textFile('myfile.tsv') \
.map(lambda row: row.split('\t'))
df = sqlc.createDataFrame(rdd, schema)
где я даю схему, как
schema = StructType([
StructField('id', StringType(), True),
StructField('name', StringType(), True),
StructField('list', ArrayType(StringType()), True),
StructField('att1', FloatType(), True),
StructField('att2', FloatType(), True),
StructField('att3', FloatType(), True),
StructField('att4', FloatType(), True)
])
Проблема, как список и атрибуты не получают правильно читать, судя из collect
на DataFrame. На самом деле, я получаю None
для всех из них:
Row(id=u'id1', brand_name=u'name1', list=None, att1=None, att2=None, att3=None, att4=None)
Что я делаю неправильно?
Абсолютно уверен, что все столбцы ограничены табуляцией? (может показаться глупым вопросом, но вы никогда не знаете). Если у вас есть сомнения, сделайте hexdump; пробел имеет шестнадцатеричный код 20, вкладка - 09 – jDo
@jDo Абсолютно уверен и проверен –