2017-02-23 95 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