簡體   English   中英

從使用 pyspark 獲得的數據幀中縮放數據

[英]Scale data from dataframe obtained with pyspark

我正在嘗試從 csv 文件中縮放一些數據。 我正在使用 pyspark 執行此操作以獲取比例部分的數據框和 sklearn。 這是代碼:

from sklearn import preprocessing
import numpy as np
import pyspark

from pysparl.sql import SparkSession

spark = SparkSession.builder.getOrCreate()

df = spark.read.option('header','true').csv('flights,csv')
X_scaled = preprocessing.scale(df)

如果我使用熊貓制作數據框,比例部分沒有任何問題,但是使用 spark 我會收到此錯誤:

ValueError: setting an array element with a sequence.

所以我猜測pandas和pyspark之間的元素類型是不同的,但是我如何使用pyspark來進行縮放?

sklearn 適用於熊貓數據框。 所以你必須將spark數據幀轉換為pandas數據幀。

X_scaled = preprocessing.scale(df.toPandas())

您可以使用“pyspark.ml.feature”中的“StandardScaler”方法。 附加一個示例腳本以執行 sklearn 的精確預處理,

第1步:

from pyspark.ml.feature import StandardScaler

scaler = StandardScaler(inputCol="features", 
                        outputCol="scaled_features",
                        withStd=True,withMean=True)
scaler_model = scaler.fit(transformed_data)
scaled_data = scaler_model.transform(transformed_data)

請記住,在執行步驟 1 之前,您需要使用 VectorAssembler 組裝所有功能。 因此,這將是您的第 0 步。

from pyspark.ml.feature import VectorAssembler
assembler = VectorAssembler(inputCols=required_features, outputCol='features')
transformed_data = assembler.transform(df)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM