【发布时间】:2021-05-16 19:59:08
【问题描述】:
我使用 Spark 2.4.1 来计算我的数据框的一些比率。
我需要通过加入元数据帧(即resDs)来找到给定数据帧(df_data)中不同比率的比率因子。
我通过使用具有不同连接条件的三个不同连接(即joinedDs、joinedDs2、joinedDs3)来获得这些比率因子(即ratio_1_factor、ratio_2_factor 和ratio_3_factor)
还有其他方法可以减少连接数吗?让它发挥最佳效果?
您可以在以下公共 URL 中找到完整的示例数据。
如何在when子句中处理多步而不是单步:
.withColumn("step_1_ratio_1", (col("ratio_1").minus(lit(0.00000123))).cast(DataTypes.DoubleType)) // step-2
.withColumn("step_2_ratio_1", (col("step_1_ratio_1").multiply(lit(0.02))).cast(DataTypes.DoubleType)) //step-3
.withColumn("step_3_ratio_1", (col("step_2_ratio_1").divide(col("step_1_ratio_1"))).cast(DataTypes.DoubleType)) //step-4
.withColumn("ratio_1_factor", (col("ratio_1_factor")).cast(DataTypes.DoubleType)) //step-5
即“ratio_1_factor”根据数据框中的其他列计算,df_data
这些步骤 -2,3,4 也用于其他 ratio_factors 计算。即 ratio_2_factor, ratio_2_factor 这应该怎么处理?
【问题讨论】:
标签: scala dataframe apache-spark pyspark apache-spark-sql