首页 文章

使用java将json格式字符串转换为数据集spark

提问于
浏览
4

火花很新......

假设我们有一个json格式的String,如下所示:

String  entry1 = "{\"user_id\":1111,\"account_num\":12345}";

如何将其读入spark数据集?据我所知,数据集可以轻松地从路径中读取json格式的数据,如下所示:

SparkSession sparksession = SparkSession.builder()...
Dataset<Row> dataset = sparksession.read().json('path')

但如何直接将上面的String转换为数据集?谢谢 .

1 回答

  • 3

    更新:创建一个列表并将其传递给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();
          }
    

相关问题