我已经编写了使用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?
.toString
这是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