java接收rowtype类型_Java PhysType.getJavaRowType方法代码示例
import org.apache.calcite.adapter.enumerable.PhysType; //導入方法依賴的package包/類
public Result implementSpark(Implementor implementor) {
/*
return Linq4j.asSpark(
new Object[][] {
new Object[] {1, 2},
new Object[] {3, 4}
});
*/
final JavaTypeFactory typeFactory =
(JavaTypeFactory) getCluster().getTypeFactory();
final BlockBuilder builder = new BlockBuilder();
final PhysType physType =
PhysTypeImpl.of(implementor.getTypeFactory(),
getRowType(),
JavaRowFormat.CUSTOM);
final Type rowClass = physType.getJavaRowType();
final List expressions = new ArrayList();
final List fields = rowType.getFieldList();
for (List tuple : tuples) {
final List literals = new ArrayList();
for (Pair pair
: Pair.zip(fields, tuple)) {
literals.add(
RexToLixTranslator.translateLiteral(
pair.right,
pair.left.getType(),
typeFactory,
RexImpTable.NullAs.NULL));
}
expressions.add(physType.record(literals));
}
builder.add(
Expressions.return_(null,
Expressions.call(SparkMethod.ARRAY_TO_RDD.method,
Expressions.call(SparkMethod.GET_SPARK_CONTEXT.method,
implementor.getRootExpression()),
Expressions.newArrayInit(Primitive.box(rowClass),
expressions))));
return implementor.result(physType, builder.toBlock());
}
總結
以上是生活随笔為你收集整理的java接收rowtype类型_Java PhysType.getJavaRowType方法代码示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php取结果集,php获取数据库结果集方
- 下一篇: pythoninterp error_P