我想对Scala中的数据帧进行分层抽样。我的数据帧只有一列,我想为它形成一个分数映射。我可以在pyspark中完成,但它在Scala中给了我错误。以下是我在Scala中尝试的:
import org.apache.spark.sql.functions.{lit}
val fractions = pqdf.select("vin").distinct().withColumn("fraction", lit(0.001)).rdd.collect().toMap
它错误地说:
Error:(25, 100) Cannot prove that org.apache.spark.sql.Row <:< (T, U).
val fractions = pqdf.select("vin").distinct().withColumn("fraction", lit(0.001)).rdd.collect().toMap
我怎么解决它?我想使用上面在.samplyBy
方法中创建的分数映射作为参数之一
val sampled_df = pqdf.stat.sampleBy("vin", fractions, 10L)
这是我在pyspark中尝试的方法,它有效:
^{pr2}$我不确定如何在Scala中实现同样的目标。在
它给您一个错误,因为}。要使其工作,您需要可转换为
DataFrame.rdd
返回{Map
的内容,例如(如果您想要Map[String, Double]
):或者
^{pr2}$相关问题 更多 >
编程相关推荐