我正在尝试对 5k 数据集中包含“道路”一词的列进行分桶。并创建一个新的数据框。
我不知道该怎么做,这是我已经尝试过的:
from pyspark.ml.feature import Bucketizer
spike_cols = [col for col in df.columns if "road" in col]
for x in spike_cols :
bucketizer = Bucketizer(splits=[-float("inf"), 10, 100, float("inf")],
inputCol=x, outputCol=x + "bucket")
bucketedData = bucketizer.transform(df)
最佳答案
要么在循环中修改df
:
from pyspark.ml.feature import Bucketizer
for x in spike_cols :
bucketizer = Bucketizer(splits=[-float("inf"), 10, 100, float("inf")],
inputCol=x, outputCol=x + "bucket")
df = bucketizer.transform(df)
或使用管道
:
from pyspark.ml import Pipeline
from pyspark.ml.feature import Bucketizer
model = Pipeline(stages=[
Bucketizer(
splits=[-float("inf"), 10, 100, float("inf")],
inputCol=x, outputCol=x + "bucket") for x in spike_cols
]).fit(df)
model.transform(df)
关于python - 如何对 pyspark 中的一组列进行分桶?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51402369/