私はこの回答をlinkで解決しましたが、もっと具体的なニーズがあります。Spark DataFrame内の特定の列のみを処理する必要があります
「cat」で始まる列のみを選択する必要があります。私は、パターンに基づいて列を選択する方法を決定することができません。私はデータフレームをフィルタリングする必要はありません。パターンで始まる名前の列だけを選択してください。
org.apache.spark.sql.AnalysisException:
val transformers: Array[PipelineStage] = df.select("cat*").columns.map(
cname =>
new StringIndexer()
.setInputCol(cname)
.setOutputCol(s"${cname}_index")
)
val stages: Array[PipelineStage] = transformers
val pipeline = new Pipeline().setStages(stages)
val model = pipeline.fit(df)
このコードは、エラーを生成する[CAT3、CAT7、cat25、...
私は私の電話にいます。 – eliasah
私は、文書のように列の代わりに行にフィルター行為があるように見えることは確かではありませんでした。私はそれを試してみましょう。ありがとう! –
コードを解体すると、columnsメソッドは、(RDDで使用するものに似ていますが、同じではなく)フィルタを適用してマップを返します。 – eliasah