读取数据时如何去除unicode?

How to remove unicode when reading data?

我有下面一行 Python 代码:

trans = data.map(lambda line: line.strip().split())

生成 Unicode 字符串,例如:

u'Hello',u'word'

我想要获取普通的 UTF-8 或 ASCII 字符串

'Hello','word' 

我尝试将字符串转换为 UTF-8,例如

trans = data.map(lambda line: line.strip().split().encode("utf-8"))

trans = data.map(lambda line: line.strip().split().encode('ascii','ignore'))

但这给出了一个错误:

AttributeError: 'list' object has no attribute 'encode'

谁能告诉我该怎么做?

更新:

数据是scv文件, trans 是 RDD

您的映射函数正在返回一个 unicode 列表,因此您可以只使用列表理解来遍历这些并将它们转换为字符串。

trans = data.map(lambda line: [str(word) for word in line.strip().split()])

尝试:

ascii = data.map(str)

这会将 data 中的每个元素从 unicode 转换为 str 运行 str(element) 每个元素。

为什么不简单地编码和分割:

data = sc.textFile("README.md")
trans = data.map(lambda x: x.encode("ascii", "ignore").split())
trans.first()
## ['#', 'Apache', 'Spark']