Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pyspark-python中的数据转换_Python_If Statement_Pyspark - Fatal编程技术网

Pyspark-python中的数据转换

Pyspark-python中的数据转换,python,if-statement,pyspark,Python,If Statement,Pyspark,如何编写python函数语句 我想更改dataMillion记录l=0,m=1,h=2,c=3,因为稍后我会找到平均值。我使用'Order Priority'作为id,但字符串不能还原ByKey 我的数据如下所示: +--------------+------------+ |Order Priority| Units Sold| +--------------+------------+ |M |1593 | |M |4611

如何编写python函数语句

我想更改dataMillion记录l=0,m=1,h=2,c=3,因为稍后我会找到平均值。我使用'Order Priority'作为id,但字符串不能还原ByKey

我的数据如下所示:

+--------------+------------+
|Order Priority|  Units Sold|
+--------------+------------+
|M             |1593        | 
|M             |4611        |
|C             |7676        | 
|H             |4790        | 
|L             |3973        |

L=低,M=中,H=高,C=临界

这是my code.py:

def parseLine(line):
    fields = line.split(',')
    priority = (fields[0])
    sold = float(fields[1])
    return (priority, sold)


lines = sc.textFile("file:///SparkCourse/project/1MillSalesRecords.csv", 4)
rdd = lines.map(parseLine)

print(rdd.take(2))
结果:


['M',1593.0',M',4611.0]

由于您需要一种可扩展的方法,请使用另一个映射函数,将字母替换为您想要的数字。在这种方法中,我使用映射字母创建一个字符串,然后查找传入字母所在的索引

也可以将此函数与第一个map解析器合并

def cleanLine(line):
    #Get the character index 
    letter_index = 'LMHC'.find(line[0])
    return (letter_index , line[1])

cleanedLine = rdd.map(cleanLine)
print(cleanedLine.take(2))

对不起,我只是个初学者。错误:字母\索引='LMHC'。findline。\ 1 AttributeError:'tuple'对象没有属性'\ 1'my bad。我打算在rdd元素上调用map,因为它具有来自上一个map的解析行。我把我的回答又编辑了一遍。我在斯卡拉工作。现在这应该在pyspark中起作用了