我有以下格式的数据文件:
Import-Module activedirectory
Get-ADUser -Filter * -Properties Department,EmployeeNumber,Title,Email,Address,DisplayName |
Export-Csv 'C:\temp\Ad.csv'
我想将每个记录更改为(令牌,id)对。例如,对于记录+--------------------+-------------------+
| full_text| id|
+--------------------+-------------------+
,我希望它转换为:
Hi, how are you, 1010
所以我是通过以下方式使用SparkSql做到的:
(hi, 1010)
(how, 1010)
(are, 1010)
(you, 1010)
和data = spark.read.json("../input/Spark_tweets.json").select("full_text", "id")
data.rdd.map(lambda data : (data[0], data[1]))\
.flatMap(lambda row: generateWordPlusId(row[0], row[1])).saveAsTextFile("out")
函数执行以下操作:
generateWordPlusId
,它可以按需工作。我的问题是传递给def generateWordPlusId(sentence, id):
t = []
for i in [word for word in sentence.lower().split()]:
t.append((i, id))
return tuple(t)
方法的函数,例如flatMap
,应该返回什么?我将数据插入二维数组,最后将其转换为元组以返回。是这种典型的方法并已优化,还是有更好的方法呢?