У меня есть 11 столбцов (от f_0 до f_9, цель) в моем кадре данных искры, которые имеют числовой тип данных, и я хочу вычислить корреляцию, и если абсолютная корреляция больше чем 0,5 или нет между f_0 & target, f_1 & targetи так далее.Я не получаю правильный фрейм данных с моим кодом.Также мне разрешено использовать только функции импорта из pyspark.sql в качестве функций fn.
corr=[fn.corr('f_'+str(i),'target').alias('c'+str(i)+'_target') for i in range(10)]
sig=[(fn.abs(fn.corr('f_'+str(i),'target'))>0.5).alias('sig'+str(i)) for i in range(10)]
correlations_df=df.select(corr+sig)
correlation_df.show()
Ожидаемая таблица:
+--------------------+-----------------+-------------------+--------------------+------------------+--------------------+------------------+-------------------+--------------------+--------------------+-----+----+-----+-----+----+-----+----+-----+-----+-----+
| c0_target| c1_target| c2_target| c3_target| c4_target| c5_target| c6_target| c7_target| c8_target| c9_target| sig0|sig1| sig2| sig3|sig4| sig5|sig6| sig7| sig8| sig9|
+--------------------+-----------------+-------------------+--------------------+------------------+--------------------+------------------+-------------------+--------------------+--------------------+-----+----+-----+-----+----+-----+----+-----+-----+-----+
|0.004550467203235598|0.517541807653123|0.24222549922181663|-0.02725292295686...|0.6109343603342664|-0.01506188705709...|0.5763480950714737|0.06334859042481797|0.007563889344988259|-0.01715842226040007|false|true|false|false|true|false|true|false|false|false|
+--------------------+-----------------+-------------------+--------------------+------------------+--------------------+------------------+-------------------+--------------------+--------------------+-----+----+-----+-----+----+-----+----+-----+-----+-----+