在python2.7中将pandas转换为pyspark数据帧时出现乱码

问题描述

原始熊猫数据框如下:

       id           song_name
001MpsbI1FoQgs02 只想好好爱一回
000qq4Kk2WMPgU02  大森林的早晨

我尝试将 Pandas 数据帧转换为 pyspark 数据帧。

代码

all_song_py=spark.createDataFrame(all_song[[u'id',u'song_name']],mySchema)

结果是:

|     id         |    song_name         

|001MpsbI1FoQgs02|åªæƒ³å¥½å¥½çˆ±ä¸€å›ž           
|000qq4Kk2WMPgU02|大森林的早晨

我尝试使用下面的代码解码乱码,但它不起作用。

decode_udf= udf(lambda val: urllib.unquote(val.encode('utf-8')).decode('gb18030'),StringType())

结果是:

氓聫陋忙聝鲁氓楼陆氓楼陆莽聢卤盲赂聙氓聸聻

有什么解决办法吗?

解决方法

解决了! 通过导入 pyspark.sql.functions 编码和解码函数。