一次将bean字段绑定到文件列以将文件加载到数据集

时间:2019-03-03 15:58:02

标签: apache-spark apache-spark-sql apache-spark-dataset

如果标题列名称没有相同的名称,是否可以将标题列名称绑定到Java bean字段?幕后Spark使用哪个序列化程序?

当我尝试创建一个加载csv文件的数据集时:

Dataset<Employee> employeeDs = frameReader.load(EMPLOYEE).as(bean(Employee.class));

我要例外:

org.apache.spark.sql.AnalysisException: cannot resolve '`companyCode`' given input columns: [NAME, AGE, COMPANY_CODE];

这很有意义,因为 COMPANY_CODE 没有与 companyCode 相关联。

CSV file:
+-------+---+------------+
|   NAME|AGE|COMPANY_CODE|
+-------+---+------------+
|   John| 41|           1|
|   Mary| 34|           1|
|  Chris| 32|           2|
|Phillip| 22|           2|
|   Tony| 44|           1|
+-------+---+------------+

Employee.class:    
public class Employee {

    private String name;

    private int companyCode;

    private int age;

(...)

0 个答案:

没有答案