narcoticsCrimeTuples = narcoticsCrimes.map(lambda x:(x.split(",")[0], x))
我有一个CSV,我试图通过分割逗号来解析,每个字符串数组中的第一个条目是主键。
我想在调用narcoticsCrimeTuples.first()[1]
我目前的理解是用逗号分割x,取每个分割[0]的第一部分,并将其作为新的x',但我很确定中间部分是不对,因为[]内的数字可以是任何东西并返回相同的结果。
答案 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