1
我有一个RDD
,我想在RDD
的列中的某一列中找到standard deviation
。我当前的代码是:如何在PySpark中的RDD中找到列中的标准偏差
def extract(line):
# line[11] is the column in which I want to find standard deviation
return (line[1],line[2],line[5],line[6],line[8],line[10],line[11])
inputfile1 = sc.textFile('file1.csv').zipWithIndex().filter(lambda (line,rownum): rownum>=0).map(lambda (line, rownum): line)
data = (inputfile1
.map(lambda line: line.split(";"))
.filter(lambda line: len(line) >1)
.map(extract)) # Map to tuples
data
是RDD
在我的最后一列(列6)具有其中我想找到standard deviation
值。我怎么找到它?
UPDATE:我当前的代码:
def extract(line):
# last column is numeric but in string format
return ((float(line[-1])))
input = sc.textFile('file1.csv').zipWithIndex().filter(lambda (line,rownum): rownum>=0).map(lambda (line, rownum): line)
Data = (input
.map(lambda line: line.split(";"))
.filter(lambda line: len(line) >1)
.map(extract)) # Map to tuples
row = Row("val")
df = Data.map(row).toDF()
df.map(lambda r: r.x).stdev()
当我运行此我得到的错误是:在df.map(lambda r: r.x).stdev()
AttributeError: x
。 注:一些在我的数据值是负