如何将Spark Row的数据集转换为字符串?

我已经编写了使用SparkSQL访问Hive表的代码。这是代码:

SparkSession spark = SparkSession

.builder()

.appName("Java Spark Hive Example")

.master("local[*]")

.config("hive.metastore.uris", "thrift://localhost:9083")

.enableHiveSupport()

.getOrCreate();

Dataset<Row> df = spark.sql("select survey_response_value from health").toDF();

df.show();

我想知道如何将完整的输出转换为String或String数组?当我尝试与另一个只能传递String或String type Array值的模块一起使用时。

我试过其他方法,例如将.toString类型转换为字符串值或将其转换为字符串值。但是没有为我工作。

请让我知道如何将DataSet值转换为String?

回答:

这是Java中的示例代码。

public class SparkSample {

public static void main(String[] args) {

SparkSession spark = SparkSession

.builder()

.appName("SparkSample")

.master("local[*]")

.getOrCreate();

//create df

List<String> myList = Arrays.asList("one", "two", "three", "four", "five");

Dataset<Row> df = spark.createDataset(myList, Encoders.STRING()).toDF();

df.show();

//using df.as

List<String> listOne = df.as(Encoders.STRING()).collectAsList();

System.out.println(listOne);

//using df.map

List<String> listTwo = df.map(row -> row.mkString(), Encoders.STRING()).collectAsList();

System.out.println(listTwo);

}

}

“ row”是java 8 lambda参数。请检查developer.com/java/start-using-java-lambda-

expressions.html

以上是 如何将Spark Row的数据集转换为字符串? 的全部内容, 来源链接: utcz.com/qa/418871.html

回到顶部