非常新的火花......
假设我们有一个json格式的字符串,如下所示:
String entry1 = "{\"user_id\":1111,\"account_num\":12345}";
如何将其读入spark数据集?据我所知,数据集可以轻松地从路径中读取json格式的数据,如下所示:
SparkSession sparksession = SparkSession.builder()...
Dataset<Row> dataset = sparksession.read().json('path')
但如何直接将上面的String转换为数据集?谢谢。
答案 0 :(得分:4)
更新: 创建一个列表并将其传递给createDataset,这将为您提供DataSet,然后您可以通过spark.read转换为您的数据集
List<String> jsonData = Arrays.asList(
"{\"user_id\":1111,\"account_num\":12345}");
Dataset<String> anotherPeopleDataset = spark.createDataset(jsonData, Encoders.STRING());
Dataset<Row> anotherPeople = spark.read().json(anotherPeopleDataset);
我已查看过文档,但无法从String中找到读取内容。一些功能没有记录。但是以下是一个小解决方法
try {
String entry1 = "{\"user_id\":1111,\"account_num\":12345}";
File file = File.createTempFile("temp",".txt");
BufferedWriter bw = new BufferedWriter(new FileWriter(file));
bw.write(entry1);
bw.close();
SparkSession sparksession = SparkSession.builder()...
Dataset<Row> dataset = sparksession.read().json(file.getAbsolutePath())
} catch (IOException e) {
e.printStackTrace();
}