阅读249 返回首页    go 微信


简单上传示例__SDK示例_批量数据通道_大数据计算服务-阿里云

  1. import java.io.IOException;
  2. import java.util.Date;
  3. import com.aliyun.odps.Column;
  4. import com.aliyun.odps.Odps;
  5. import com.aliyun.odps.PartitionSpec;
  6. import com.aliyun.odps.TableSchema;
  7. import com.aliyun.odps.account.Account;
  8. import com.aliyun.odps.account.AliyunAccount;
  9. import com.aliyun.odps.data.Record;
  10. import com.aliyun.odps.data.RecordWriter;
  11. import com.aliyun.odps.tunnel.TableTunnel;
  12. import com.aliyun.odps.tunnel.TunnelException;
  13. import com.aliyun.odps.tunnel.TableTunnel.UploadSession;
  14. public class UploadSample {
  15. private static String accessId = "<your access id>";
  16. private static String accessKey = "<your access Key>";
  17. private static String odpsUrl = "https://service.odps.aliyun.com/api";
  18. private static String project = "<your project>";
  19. private static String table = "<your table name>";
  20. private static String partition = "<your partition spec>";
  21. public static void main(String args[]) {
  22. Account account = new AliyunAccount(accessId, accessKey);
  23. Odps odps = new Odps(account);
  24. odps.setEndpoint(odpsUrl);
  25. odps.setDefaultProject(project);
  26. try {
  27. TableTunnel tunnel = new TableTunnel(odps);
  28. PartitionSpec partitionSpec = new PartitionSpec(partition);
  29. UploadSession uploadSession = tunnel.createUploadSession(project,
  30. table, partitionSpec);
  31. System.out.println("Session Status is : "
  32. + uploadSession.getStatus().toString());
  33. TableSchema schema = uploadSession.getSchema();
  34. RecordWriter recordWriter = uploadSession.openRecordWriter(0);
  35. Record record = uploadSession.newRecord();
  36. for (int i = 0; i < schema.getColumns().size(); i++) {
  37. Column column = schema.getColumn(i);
  38. switch (column.getType()) {
  39. case BIGINT:
  40. record.setBigint(i, 1L);
  41. break;
  42. case BOOLEAN:
  43. record.setBoolean(i, true);
  44. break;
  45. case DATETIME:
  46. record.setDatetime(i, new Date());
  47. break;
  48. case DOUBLE:
  49. record.setDouble(i, 0.0);
  50. break;
  51. case STRING:
  52. record.setString(i, "sample");
  53. break;
  54. default:
  55. throw new RuntimeException("Unknown column type: "
  56. + column.getType());
  57. }
  58. }
  59. for (int i = 0; i < 10; i++) {
  60. recordWriter.write(record);
  61. }
  62. recordWriter.close();
  63. uploadSession.commit(new Long[]{0L});
  64. System.out.println("upload success!");
  65. } catch (TunnelException e) {
  66. e.printStackTrace();
  67. } catch (IOException e) {
  68. e.printStackTrace();
  69. }
  70. }
  71. }

构造器举例说明:PartitionSpec(String spec):通过字符串构造此类对象。参数:spec: 分区定义字符串,比如: pt=’1’,ds=’2’。因此程序中应该这样配置:private static String partition = “pt=’XXX’,ds=’XXX’”;

最后更新:2016-07-12 15:32:02

  上一篇:go 示例概要__SDK示例_批量数据通道_大数据计算服务-阿里云
  下一篇:go 简单下载示例__SDK示例_批量数据通道_大数据计算服务-阿里云