需要在 spark 数据帧上的 sql 查询上应用相关矩阵
Need to apply correlation matrix on the sql query on spark dataframe
我有一个示例数据集,其中包含与组织员工相关的数据。请在下面找到数据集的架构。
我在这里试图解决的问题是,使用相关矩阵,员工坚持组织的最重要标准是什么。
我试图在 spark/scala 中的 sql 查询中解决这个问题。
Schema of the Dataset
|-- satisfaction_level: float
|-- last_evaluation: float
|-- number_project: integer
|-- average_monthly_hours: integer
|-- time_spend_company: integer
|-- work_accident: integer
|-- left: integer
|-- promotion_last_5years: integer
|-- department: string
|-- salary: string
我尝试了下面的查询,但它没有产生任何结果,根据我对数据的理解和分析,我可以证明 当 satisfaction_level 员工下岗时倾向于离开组织.
val correlationVal = employeesDF.stat.corr("satisfaction_level","left")
我在编写 sql 查询以解决上述问题时发现问题,有人可以帮我解决这个问题吗?对此问题应用相关矩阵的正确方法是什么?
注意:如果有任何 better/simpler 使用 Spark 解决此问题的方法,请与我分享您的意见。
这是一个最适合我的代码:
import org.apache.spark.sql.{DataFrame,Row}
import org.apache.spark.sql.Row
import org.apache.spark.sql.types._
import org.apache.spark.{SparkConf, SparkContext }
import org.apache.spark.sql.hive.HiveContext
val schema = StructType( Array(
StructField("col1", IntegerType, true),
StructField("col2", FloatType, true)
))
val rdd = sc.parallelize( Seq(Row(1, 1.34.toFloat), Row(2, 2.02.toFloat), Row(3, 3.4.toFloat), Row(4, 4.2.toFloat)))
val dataFrame = spark.createDataFrame(rdd, schema)
dataFrame.stat.corr("col1","col2")
结果是 0.9914
,几乎接近 1,表明列是相关的。
我有一个示例数据集,其中包含与组织员工相关的数据。请在下面找到数据集的架构。
我在这里试图解决的问题是,使用相关矩阵,员工坚持组织的最重要标准是什么。 我试图在 spark/scala 中的 sql 查询中解决这个问题。
Schema of the Dataset
|-- satisfaction_level: float
|-- last_evaluation: float
|-- number_project: integer
|-- average_monthly_hours: integer
|-- time_spend_company: integer
|-- work_accident: integer
|-- left: integer
|-- promotion_last_5years: integer
|-- department: string
|-- salary: string
我尝试了下面的查询,但它没有产生任何结果,根据我对数据的理解和分析,我可以证明 当 satisfaction_level 员工下岗时倾向于离开组织.
val correlationVal = employeesDF.stat.corr("satisfaction_level","left")
我在编写 sql 查询以解决上述问题时发现问题,有人可以帮我解决这个问题吗?对此问题应用相关矩阵的正确方法是什么?
注意:如果有任何 better/simpler 使用 Spark 解决此问题的方法,请与我分享您的意见。
这是一个最适合我的代码:
import org.apache.spark.sql.{DataFrame,Row}
import org.apache.spark.sql.Row
import org.apache.spark.sql.types._
import org.apache.spark.{SparkConf, SparkContext }
import org.apache.spark.sql.hive.HiveContext
val schema = StructType( Array(
StructField("col1", IntegerType, true),
StructField("col2", FloatType, true)
))
val rdd = sc.parallelize( Seq(Row(1, 1.34.toFloat), Row(2, 2.02.toFloat), Row(3, 3.4.toFloat), Row(4, 4.2.toFloat)))
val dataFrame = spark.createDataFrame(rdd, schema)
dataFrame.stat.corr("col1","col2")
结果是 0.9914
,几乎接近 1,表明列是相关的。