我想从一个目录中读取多个文本文档来进行文档聚类。为此,我希望按以下方式读取数据:
SparkConf sparkConf = new SparkConf().setAppName(appName).setMaster("local[*]").set("spark.executor.memory", "2g");JavaSparkContext context = new JavaSparkContext(sparkConf);SparkSession spark = SparkSession.builder().config(sparkConf).getOrCreate();Dataset<Row> dataset = spark.read().textFile("path to directory");
在这里,我不想使用
JavaPairRDD data = context.wholeTextFiles(path); 因为我希望返回类型是Dataset。
回答:
在Scala中,你可以这样写:
context.wholeTextFiles("...").toDS()
在Java中,你需要使用一个编码器。请查看Java文档以获取更多详情。
JavaPairRDD<String, String> rdd = context.wholeTextFiles("hdfs:///tmp/test_read");Encoder<Tuple2<String, String>> encoder = Encoders.tuple(Encoders.STRING(), Encoders.STRING());spark.createDataset(rdd.rdd(), encoder).show();