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