Python pyspark-如何从配置单元处理unicode

Python pyspark-如何从配置单元处理unicode,python,pyspark,pyspark-sql,python-unicode,Python,Pyspark,Pyspark Sql,Python Unicode,我正试着阅读Pypark中的蜂巢表 from pyspark.sql import SQLContext from pyspark import HiveContext hivec = HiveContext(sc) sqlc = SQLContext(sc) t = hivec.sql("select * from database.table").collect() data = sqlc.createDataFrame(t) data.registerTempTable("mast

我正试着阅读Pypark中的蜂巢表

from pyspark.sql import SQLContext 
from pyspark import HiveContext 
hivec = HiveContext(sc) sqlc = SQLContext(sc) 
t = hivec.sql("select * from database.table").collect()

data = sqlc.createDataFrame(t)
data.registerTempTable("masterTable")
sqlc.sql("select * from masterTable").show()
我得到下面的错误

UnicodeEncodeError:“ascii”编解码器无法在中对字符u'\ufffd'进行编码 位置8871:序号不在范围内(128)

我所尝试的:

当我在配置单元中为同一条记录“选择*from”时,我发现了掉下来的记录,没有报告任何错误,也看不到任何unicode -
t=hivec.sql(“select*from database.table”).collect()
t变量本身没有报告错误

   '>>>t
   prints out all the rows
一旦t转换为数据帧,问题就会出现

我尝试了编码和解码,“utf-8”和“ascii”之间的组合,主要是因为我无法直观地分辨字段是unicode还是ascii,因为hive select或打印列表显示任何可见内容或抛出错误

data.select(*(c.encode("ascii","ignore") if not isinstance(c,unicode) else c for c in data.columns )).show(10)

抛出相同的错误。有什么建议可以解决这个问题吗?

s=u'\ufffd';打印s.encode('utf8')
显示�. 您是否使用了“utf-8”而不是“utf8”?s=u'\ufffd';打印s.encode('utf-8')也显示�. 我认为问题在于pyspark下的数据帧