Tag: apache spark dataset

如何将JavaPairRDD转换为数据集?

SparkSession.createDataset()只允许List, RDD, or Seq – 但它不支持JavaPairRDD 。 因此,如果我有一个我想要创建Dataset的JavaPairRDD ,那么SparkSession.createDataset()限制的可行工作区SparkSession.createDataset()可以创建包含两个字段的包装器UserMap类: String和User 。 然后执行spark.createDataset(userMap, Encoders.bean(UserMap.class)); ?

如何在Java中的Apache Spark中将DataFrame转换为Dataset?

我可以很容易地将Scala中的DataFrame转换为Dataset: case class Person(name:String, age:Long) val df = ctx.read.json(“/tmp/persons.json”) val ds = df.as[Person] ds.printSchema 但在Java版本中我不知道如何将Dataframe转换为Dataset? 任何想法? 我的努力是: DataFrame df = ctx.read().json(logFile); Encoder encoder = new Encoder(); Dataset ds = new Dataset(ctx,df.logicalPlan(),encoder); ds.printSchema(); 但是编译器说: Error:(23, 27) java: org.apache.spark.sql.Encoder is abstract; cannot be instantiated 编辑(解决方案): 基于@Leet-Falcon的解决方案答案: DataFrame df = ctx.read().json(logFile); Encoder encoder = Encoders.bean(Person.class); Dataset ds = […]

用于行类型Spark数据集的编码器

我想在DataSet中为Row类型编写一个编码器,用于我正在进行的地图操作。 基本上,我不明白如何编写编码器。 以下是地图操作的示例: In the example below, instead of returning Dataset, I would like to return Dataset Dataset output = dataset1.flatMap(new FlatMapFunction() { @Override public Iterator call(Row row) throws Exception { ArrayList obj = //some map operation return obj.iterator(); } },Encoders.STRING()); 据我所知,编码器需要编写如下代码: Encoder encoder = new Encoder() { @Override public StructType schema() { return join.schema(); […]

sparkContext JavaSparkContext SQLContext SparkSession之间的区别?

sparkContext, javaSparkContext, SQLContext和SparkSession什么SparkSession 。 有没有使用Sparksession转换或创建Context的方法? 我可以使用一个条目SparkSession完全替换所有Context吗? 是否在SQLContext中添加了SparkSession , SparkContext , JavaSparkContext等中的所有函数? 像parallelize这样的函数在SparkContext和JavaSparkContext有不同的用法。 如何在SparkSession使用这样的function? 如何使用SparkSession创建以下SparkSession ? RDD JavaRDD JavaPairRDD 数据集 有没有方法将JavaPairRDD转换为Dataset或Dataset到JavaPairRDD ?