可以创建仅包含特定列的Athena表吗?

时间:2018-04-19 15:54:50

标签: amazon-web-services aws-sdk amazon-athena

我有一组文件的列数比我们实际需要的多。其中,包括的列和顺序可以是可变的。使用此表创建:

class C {
    virtual int someMethod();
};

int invokeAMethod(C *c, int (C::*method)()) {
    return (c->*method)();
}

Athena只是拉出第一列,因此输出最终为:

invokeAMethod(C*, int (C::*)()): # @invokeAMethod(C*, int (C::*)())
  // c is in rdi, method.adj is in rdx, and method.ptr is in rdx
  // adjust this pointer
  add rdi, rdx
  // check whether method is virtual
  test sil, 1
  // if it is not, skip the following
  je .LBB0_2
  // load the vtable pointer from the object
  mov rax, qword ptr [rdi]
  // index into the vtable with the corrected offset to load actual method address
  mov rsi, qword ptr [rax + rsi - 1]
.LBB0_2:
  // here the actual address of the method is in rsi, we call it
  // in this particular case we return the same type
  // and do not need to call any destructors
  // so we can tail call
  jmp rsi # TAILCALL

我正在以编程方式创建这些表,所以我不想阅读每个列名并创建一个包含比我需要的更多数据的表。如果不能将某些列映射到Athena的表中,那么我想我必须这样做。

1 个答案:

答案 0 :(得分:1)

我认为不,您必须创建一个包含所有列的表,然后在从该表中选择数据时,您可以指定列。