2016-06-24 2 views
-1

я создал dataframe используя df1 = HiveContext (SC) .sql ("от xxx.table1 выберите *"), преобразованные в РД df1.rddpyspark: Нанести функции на каждом поля РДА

Я должен применить преобразования на уровне поля в строке. Как мне это сделать?

Я попытался следующий код:

df2 = rdd1.map(lambda row: 
     Row(row.fld1, 
      row.fld2.replace("'", "''").replace("\\","\\\\").strip(), 
      row.fld3.toLowerCase 
     ) 
) 

Я получаю ошибку

AttributeError: 'unicode' object has no attribute toLowerCase/replace

Не могли бы вы помочь?

+0

Привет, я получил эту работу, изменив свой код, как показано ниже: rdd2 = rdd1.map (лямбда-строка: ул (строка) .lower () .replace ("'", "' '") .replace ("\\", "\\\\"). strip() \ if (type (row) == str или type (row) == unicode или \ (не row.apn или not row.fips_code или не row.dupl_apn)) else row) Надеюсь, это будет полезно для других. – Aavik

ответ