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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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 如何将rdd/数据帧/数据集转换为字符串_Scala_Apache Spark_Hadoop_Apache Spark Sql - Fatal编程技术网

Scala 如何将rdd/数据帧/数据集转换为字符串

Scala 如何将rdd/数据帧/数据集转换为字符串,scala,apache-spark,hadoop,apache-spark-sql,Scala,Apache Spark,Hadoop,Apache Spark Sql,如何在spark scala中将rdd/data frame/dataset转换为String/List而不使用collect考虑到您正在尝试将行中的每一列作为一个由分隔符分隔的字符串 将rdd行转换为字符串的步骤 将数据帧/数据集行转换为字符串的步骤 希望这有帮助 Spark DataFrame/Dataset/RDD是一个数据集合,另一方面,List是一个集合而不是分布式的 因此,将RDD转换为列表的唯一方法是将RDD的所有分区带到单个JVM,并将其转换为列表。这将是一个有效的收集操作 简而

如何在spark scala中将rdd/data frame/dataset转换为String/List而不使用collect

考虑到您正在尝试将行中的每一列作为一个由分隔符分隔的字符串

将rdd行转换为字符串的步骤 将数据帧/数据集行转换为字符串的步骤
希望这有帮助

Spark DataFrame/Dataset/RDD是一个数据集合,另一方面,List是一个集合而不是分布式的

因此,将RDD转换为列表的唯一方法是将RDD的所有分区带到单个JVM,并将其转换为列表。这将是一个有效的收集操作


简而言之,收集是做你正在做的事情的唯一合适的方式。

这个问题并不能真正说明你在做什么。你可能需要在这里解释你想要实现什么。将其转换为列表时,您需要将所有内容都放到一个JVM中,因为未联机的RDD不能存在于多个位置。因此,它将有效地收集。你能解释一下你的用例是什么吗?你想用这些弦做什么?可能会将它们写入一个文件?我有一个数据框,其中包含表名和数据。每个表都有不同的表结构。我需要从数据帧循环一个不同的表,并需要写入相应的表,这样我就有了下面的代码val tablename:Array[String]=df1.selectmsgname.distinct.rdd.maprow=>row.getString0.trim.collect tablename.foreach{table=>df1.write.saveastables$table}在获取表名时,有没有更好的方法不首先进行collect来将RDD[array[string]]转换为array[string]我们可以不进行collect吗?我相信这是不可能的。。如果您尝试array_rdd.toString,您将只得到字符串。我有一个dataframe,它包含表名和数据。每个表都有不同的表结构。我需要从数据帧循环一个不同的表,并需要写入相应的表,这样我就有了下面的代码val tablename:Array[String]=df1.selectmsgname.distinct.rdd.maprow=>row.getString0.trim.collect tablename.foreach{table=>df1.write.saveastables$table}在获取表名时,有没有更好的方法不首先进行收集,而是尝试根据某个值筛选数据,并将数据存储为具有相同值的表--def saveTablefilter_value:String{df.filtercoltablename==filter_value.write.saveAsTablefilter_value}-希望这有帮助
val out_rdd = rdd.map(x => x.mkString(",")
val out_rdd = df.rdd.map(x => x.mkString(",")