我必须导入Spark
中的CSV
文件,并在DF
中进行转换,然后在RDD
中进行处理。在
首先,我将完整的CSV
文件导入为DF
stopwords_df = (
sqlc
.read
.format('csv')
.option('header', True)
.option('delimiter', ';')
.option('encoding', 'latin1')
.load('/mnt/sparkdata/stopwords.csv', schema = stopSchema)
.repartition(72)
)
然后我只选择合适的单词并将其转换成集合
^{pr2}$我把编码搞砸了,我不知道怎么解决这个问题。在
如果我“显示”这个DF
,拉丁字母将正确显示(sperò)
stopwords_df.show(100, truncate = False)
+--------------+--------+------+----------+------+
|word |language|type |doubletype|retain|
+--------------+--------+------+----------+------+
|informava |IT |verbo |null |null |
|sperò |IT |verbo |null |null |
|four |EN |null |null |null |
但如果我出示RDD就不会这样了
(
stopwords_df
.filter(f.col('word') == r'sperò')
.rdd
.first()
)
Row(word=u'sper\xf2', language=u'IT', type=u'verbo', doubletype=None, retain=None)
有了UTF-8 encoding
它也会变得更糟
+--------------+--------+------+----------+------+
|word |language|type |doubletype|retain|
+--------------+--------+------+----------+------+
|thanks |EN |saluto|null |null |
|fossero |IT |verbo |null |null |
|sper� |IT |verbo |null |null |
你能告诉我怎么修这个吗?在
看到这一行后:
这意味着您使用的是python3。python3的默认编码是utf-8,默认情况下它支持ò。在
因此,当它被指定为“2”时,它被替换为“2”。在
为什么你不收集没有编码的拉丁1?在
^{pr2}$如果有帮助,请告诉我。 谢谢您。在
相关问题 更多 >
编程相关推荐