2017-02-23 85 views
0
narcoticsCrimeTuples = narcoticsCrimes.map(lambda x:(x.split(",")[0], x)) 

我有一个CSV我想通过分割逗号进行解析,每个字符串数组中的第一项是主键。
主叫narcoticsCrimeTuples.first()[1]这个anonymmous split函数做什么?

我的当前理解当我想获得在单独的行密钥(或只是分离)从所述的值是“分裂X由逗号,取每个分裂[0]的第一部分,和作为新的x'返回,但我很确定中间部分是不正确的,因为[]内的数字可以是任何东西并返回相同的结果。

+0

该表达'narcoticsCrimes.map(拉姆达X:(x.split( “”)[0]中,x))'是无效的。你可以做这样的'map(函数,逗号,分隔“.split(”,“)) - 但你的问题没有说明。 –

+0

'narcoticsCrimes'是一个自定义对象吗?它是否有自己定义的'map'方法? –

+0

@JordanBonitatis PySpark。这是一个RDD –

回答

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)) 
+0

你的答案和Amir的帮助!我结束了使用 narcoticsCrimeTuples = narcoticsCrimes.map(lambda x:(x.split(“,”)[1:],x)) narcoticsCrimeTuples.first() –

+0

似乎毫无意义。你仍然有整行的CSV数据 –

+0

oops意思是narcoticsCrimeTuples = narcoticsCrimes.map(lambda x:(x.split(“,”)[1:]))这样更好吗? –

0

通过语法上看好像你在PySpark。如果这是真的,那么您正在映射RDD和每行创建一个(key, row)元组,该键是用逗号分隔的项目列表中的第一个元素。做narcoticsCrimeTuples.first()只会给你第一个记录。

在这里看到的例子: https://gist.github.com/amirziai/5db698ea613c6857d72e9ce6189c1193