Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 在Spark中将BigInt转换为Int_Scala_Apache Spark_Apache Spark Mllib_Apache Zeppelin - Fatal编程技术网

Scala 在Spark中将BigInt转换为Int

Scala 在Spark中将BigInt转换为Int,scala,apache-spark,apache-spark-mllib,apache-zeppelin,Scala,Apache Spark,Apache Spark Mllib,Apache Zeppelin,嗨,我正在尝试将BigInt转换为int,以便生成类。 我只想使用足够小的实例,以适应我使用的以下代码: 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计数在Zep

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

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

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

我注意到,在
.toInt
所以我试着把余数和商相加

((rec.getLong(0) % Int.MaxValue) + (rec.getLong(0) / Int.MaxValue)).toInt

这更好,因为我得到了232个唯一值,而不是234,但使用toInt我得到了6个唯一值,而不是234。

当我使用下面的方法进行转换时,number的值将被更改

table.col("id").cast("long") //java

抱歉,我需要一个Int。所以链是BigInt=>Int