gpt4 book ai didi

scala - 在 Spark 中将 BigInt 转换为 Int

转载 作者:行者123 更新时间:2023-12-04 17:55:22 36 4
gpt4 key购买 nike

您好,我正在尝试将 BigInt 转换为 int 以生成 Rating类。我只想使用足够小以适合 in 的实例,我使用以下代码:

val tup=rs.select("kunden_nr","product_list") 
val rdd=tup.rdd.map(row=>(row.getAs[BigInt](0),row.getAs[Seq[Int]](1)))
val fs=rdd.filter(el=>el._1.isValidInt)
fs.count()
rdd.count()

fs 计数在 Zepplin 中传递以下异常:

java.lang.ClassCastException: java.lang.Long 无法转换为 scala.math.BigInt

最佳答案

转换就像改变您的代码用来表示您的值引用的内容的“眼镜”,而不是实际更改引用的内容或更改引用以指向新的 BigInt 实例。

这意味着您需要使用它真正拥有的类型来获取您的值,然后从中构建一个 BigInt 实例:

BigInt(row.getAs[Long](0))

按照相同的推理,您可以从 Long 创建一个 Int 实例,如下所示:

row.getAs[Long](0).toInt

但它可能会溢出整数类型的表示范围。

关于scala - 在 Spark 中将 BigInt 转换为 Int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41736642/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com