gpt4 book ai didi

dataset - 如何从 Parquet 创建数据集?

转载 作者:行者123 更新时间:2023-12-01 22:25:35 31 4
gpt4 key购买 nike

我有以下代码将数据从 Parquet 读取到 Dataframe

DataFrame addressDF = sqlContext.read().parquet(addressParquetPath);

如何将数据从 Parquet 读取到数据集?

Dataset dataset = sqlContext.createDataset(sqlContext.read().parquet(propertyParquetPath).toJavaRDD(), Encoder.);

Encoder 参数应包含什么?另外,我是否必须创建一个属性类,然后传递它,或者它是怎样的?

最佳答案

Encoder对于类型 T是告诉 Spark 如何实例 T 的类可以从内部 Spark 表示进行解码和编码。它包含类的架构和 scala ClassTag它用于通过反射创建您的类。

在您的代码中,您没有专门针对任何类型 T 的数据集,因此我无法为您创建编码器,但我可以为您提供 Databricks Spark documentation 中的编码器作为示例。 ,我建议阅读,因为它很棒。首先,我们创建类University我们想要加载到 DateSet 中:

public class University implements Serializable {
private String name;
private long numStudents;
private long yearFounded;

public void setName(String name) {...}
public String getName() {...}
public void setNumStudents(long numStudents) {...}
public long getNumStudents() {...}
public void setYearFounded(long yearFounded) {...}
public long getYearFounded() {...}
}

现在,UniversityJava Bean和 Spark Encoders库提供了一种使用函数 bean 创建 Java Bean 编码器的方法:

Encoder<University> universityEncoder = Encoders.bean(University.class)

然后可用于读取 University 的数据集从 parquet 中获取,而不先将它们加载到 DataFrame 中(这是多余的):

Dataset<University> schools = context.read().json("/schools.json").as(universityEncoder);

现在schoolsDataset<University>从 Parquet 文件中读取。

关于dataset - 如何从 Parquet 创建数据集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36227829/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com