pyspark:在RDD的每个字段上应用函数

pyspark:在RDD的每个字段上应用函数,pyspark,Pyspark,我使用df1=HiveContext(sc.sql(“from xxx.table1 select*”)创建了数据帧,并将其转换为RDD df1.RDD 我必须在一行中的字段级别应用转换。我该怎么做 我尝试了以下代码: df2 = rdd1.map(lambda row: Row(row.fld1, row.fld2.replace("'", "''").replace("\\","\\\\").strip(), row.fld3.

我使用df1=HiveContext(sc.sql(“from xxx.table1 select*”)创建了数据帧,并将其转换为RDD df1.RDD

我必须在一行中的字段级别应用转换。我该怎么做

我尝试了以下代码:

df2 = rdd1.map(lambda row:
        Row(row.fld1,
            row.fld2.replace("'", "''").replace("\\","\\\\").strip(),
            row.fld3.toLowerCase
        )
)
我犯了一个错误

AttributeError:“unicode”对象没有小写/替换属性

你能帮忙吗

更换

row.fld3.toLowerCase


您好,我通过如下更改代码实现了这一点:rdd2=rdd1.map(lambda row:str(row).lower().replace(“,”).replace(“\\”,“\\\”).strip()\if(type(row)==str或type(row)==unicode或\(not row.apn或not row.fips\u code或not row.dupl\u apn))else行)希望对其他人有所帮助。
row.fld3.lower()