关于spark中dataframe数据处理

在数据处理中遇到一个问题,当有一个数据集输入,需要将其中一个维度进行处理,该怎么操作,这里拿二值化操作举例,



from pyspark import SparkContext
from pyspark import SQLContext
from pyspark.ml.feature import Binarizer


sc=SparkContext()
sqlcontext=SQLContext(sc)
continuousDataFrame = sqlcontext.createDataFrame([
    (0, 0.1,8),
    (1, 0.8,9),
    (2, 0.2,10)
], ["label", "feature","get"])

上一句构建了一个dataframe,接下来我们要将中间的那一列进行二值化处理
binarizer = Binarizer(threshold=0.5, inputCol="feature", outputCol="binarized_feature")
binarizedDataFrame = binarizer.transform(continuousDataFrame)
上两句代码将feature进行了二值化处理

binarizedFeatures = binarizedDataFrame.select("binarized_feature","get")

这时的binarizedFeatures是一个dataframe,不需要再进行转化,可以直接使用。所以再有类似的数据处理操作,可以直接再操作后,使用select选择自己需要的维度,

就直接形成了一个dataframe,直接进行算法模型的培训。

binarizedFeatures.show(5,False)



你可能感兴趣的:(spark-mllib)