spark-ml
не является типичной статистической библиотекой. Это очень ML ориентированный. Поэтому предполагается, что вы захотите запустить тест между меткой и элементом или группой элементов.
Следовательно, аналогично тому, как при обучении модели вам необходимо собрать элементы, с которыми вы хотите протестировать
В вашем случае вы можете просто собрать feature1
следующим образом:
from pyspark.ml.stat import ChiSquareTest
from pyspark.ml.feature import VectorAssembler
data = [(1, 2), (3, 4), (2, 1), (4, 3)]
df = spark.createDataFrame(data, ['feature1', 'feature2'])
assembler = VectorAssembler().setInputCols(['feature1']).setOutputCol('features')
ChiSquareTest.test(assembler.transform(df), 'features', 'feature2').show(false)
На всякий случай код в scala:
import org.apache.spark.ml.stat.ChiSquareTest
import org.apache.spark.ml.feature.VectorAssembler
val df = Seq((1, 2, 3), (1, 2, 3), (4, 5, 6), (6, 5, 4))
.toDF("feature1, "feature2", "feature3")
val assembler = new VectorAssembler()
.setInputCols(Array("feature1"))
.setOutputCol("features")
ChiSquareTest.test(assembler.transform(df), "features", "feature2").show(false)