这个anonymmous split功能有什么作用?

时间:2017-02-23 06:19:30

标签: python apache-spark pyspark

narcoticsCrimeTuples = narcoticsCrimes.map(lambda x:(x.split(",")[0], x))

我有一个CSV,我试图通过分割逗号来解析,每个字符串数组中的第一个条目是主键。
我想在调用narcoticsCrimeTuples.first()[1]

时将密钥与值分开(或单独分开)

我目前的理解是用逗号分割x,取每个分割[0]的第一部分,并将其作为新的x',但我很确定中间部分是不对,因为[]内的数字可以是任何东西并返回相同的结果。

2 个答案:

答案 0 :(得分:1)

你的变量被命名为“narcoticsCrimeTuples”,所以你似乎应该得到一个“元组”。

您的两个元组值是CSV x.split(",")[0] 的第一列和整行x

  

我想把钥匙放在一个单独的行上

不清楚你为什么要这样......

  调用narcoticsCrimeTuples.first()[1]

时的值

(或单独)

好吧,当你致电.first()时,你会得到整个元组。 [0]是第一列,[1]是CSV的对应行,其中还包含[0]值。

如果您narcoticsCrimes.flatMap(lambda x: x.split(",")),那么所有值都将被分开。

例如,在单词计数示例中......

textFile.flatMap(lambda line: line.split()).map(lambda word: (word, 1))

答案 1 :(得分:0)

通过语法判断你似乎在PySpark中。如果确实如此,那么您将映射RDD并为每行创建一个(key, row)元组,该键是以逗号分隔的项列表中的第一个元素。执行narcoticsCrimeTuples.first()只会给你第一条记录。

在此处查看示例: https://gist.github.com/amirziai/5db698ea613c6857d72e9ce6189c1193