2016-09-08 9 views
2

ここでは、区切り文字としてスペースを含む4列の入力データを示します。私はApache Sparkで複数の列を追加する方法

[('sachin', 200, 10), ('sachin', 900, 20), ('sachin', 500, 30), ('Raju', 400, 40 
), ('Mike', 100, 50), ('Raju', 50, 60)] 

として結果を得た私のコ​​ードはここからミッドウェイ

from pyspark import SparkContext 
sc = SparkContext() 
def getLineInfo(lines): 
    spLine = lines.split(' ') 
    name = str(spLine[0]) 
    cash = int(spLine[1]) 
    cash2 = int(spLine[2]) 
    cash3 = int(spLine[3]) 
    return (name,cash,cash2) 
myFile = sc.textFile("D:\PYSK\cash.txt") 
rdd = myFile.map(getLineInfo) 
print rdd.collect() 

である第二と第三の列を追加し、

sachin 200 10 2 
sachin 900 20 2 
sachin 500 30 3 
Raju 400 40 4 
Mike 100 50 5 
Raju 50 60 6 

結果を印刷したいです必要な最終結果は次のとおりです。第2列と第3列を追加し、残りのフィールドを表示します。

答えて

4

これを使用:

def getLineInfo(lines): 
    spLine = lines.split(' ') 
    name = str(spLine[0]) 
    cash = int(spLine[1]) 
    cash2 = int(spLine[2]) 
    cash3 = int(spLine[3]) 
    return (name, cash + cash2, cash3) 
+0

それは働いた。ありがとう。もう1つの質問 - RDDにデータがあると、特定のデータに対して何らかの操作を行うことができますか? 例:RDD [( 'sachin'、200、10)、( 'Raju'、900、20)]です。どのように3番目の列だけを取り出すか、私は10と20を意味します –

+1

@SachinSukumaranそれがうまくいくなら答えを受け入れるべきです。 –

+0

@ rakesh.rakshitはい。 (私が謝ってくれなかったことのいくつかは謝ります) –

関連する問題