请参见“Programmatically Specifying the Schema”部分。 Java部分。Spark Java:将可变数量的参数传递给函数
该示例有效。但是我对这个特定的代码片断有个疑问。
JavaRDD<Row> rowRDD = people.map(
new Function<String, Row>() {
public Row call(String record) throws Exception {
String[] fields = record.split(",");
return Row.create(fields[0], fields[1].trim());
}
使用在编译时确定的静态数量的对象调用行创建方法。
但是,在我的代码中,我需要为动态数量的参数调用Row.create
方法。
我只知道字段的数量在运行时
例如,它可能是一个:
return Row.create(fields[0], fields[1].trim(), fields[2]);
或
return Row.create(fields[0]);
或
return Row.create(fields[0],fields[1].trim(), fields[2], fields[3],fields[4]);
我该怎么做?
有人提出“论点后三点”能解决我的问题。它不会。我调用的方法已经接受了一个动态数量的参数。问题在于打电话。我不知道在编译时传递给它多少个参数。我会在运行时知道它。问题不在于功能。 – Sit 2014-10-07 07:26:18