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();
完全な出力を文字列または文字列配列に変換する方法を知りたいですか?文字列または文字列型の配列値のみを渡すことができる別のモジュールで作業しようとしているので。.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);
}
}
「行」はJava 8ラムダパラメータ。確認してください developer.com/Java/start-using-Java-lambda-expressions.html