如何在PySp中查找RDD中某列的标准差

2024-04-25 13:58:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个RDD,我想在数据中找到standard deviation,它是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

dataRDD,其中,最后一列(第6列)具有要在其中查找standard deviation的值。我怎么能找到它?

更新:我的当前代码:

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注意:我的数据中有些值是负数


Tags: to数据lambda代码mapdfisdef