Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.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数据帧的第一个()_Scala_Apache Spark_Apache Spark Sql_Jupyter Scala - Fatal编程技术网

Scala 无法获取spark数据帧的第一个()

Scala 无法获取spark数据帧的第一个(),scala,apache-spark,apache-spark-sql,jupyter-scala,Scala,Apache Spark,Apache Spark Sql,Jupyter Scala,我正在尝试使用spark将数据从s3存储桶加载到我的emr笔记本(它位于运行spark 2.4的emr集群上) 我已经创建了EMR笔记本,它创建了一个sparkSession作为spark,并且可以分配 val connections = data.select("col1", "col2").rdd.distinct().flatMap(x => Iterable(x(0).asInstanceOf[Number].longValue, x(1).asInstanceOf[Numbe

我正在尝试使用spark将数据从s3存储桶加载到我的emr笔记本(它位于运行spark 2.4的emr集群上)

我已经创建了EMR笔记本,它创建了一个sparkSession作为spark,并且可以分配

val connections = data.select("col1", "col2").rdd.distinct().flatMap(x => 
Iterable(x(0).asInstanceOf[Number].longValue, 
x(1).asInstanceOf[Number].longValue)).distinct().toDF() 
我得到了答复

连接:org.apache.spark.sql.DataFrame=[value:bigint]

但是,当我运行时,这是预期的:
connections.first()

我得到输出:

org.apache.spark.SparkException:作业因阶段失败而中止:阶段8.0中的任务0失败了4次,最近的失败:阶段8.0中的任务0.3丢失(TID 55,ip-10-0-251-222.ec2.internal,executor 4):java.lang.ClassCastException:[B无法转换为java.lang.Number
(另外还有大约100行,它不允许我添加)


​为什么我不能获取满是bigint的数据帧的第一个值?

您的起始数据帧data中有一个字符串,不能转换为数字

java.lang.ClassCastException:[B不能转换为java.lang.Number


可能的重复应该不需要转换为rdd、flatmap和转换回dataframe。如果添加一些示例输入/预期输出,可能会找到更好的解决方案。