コード例 #1
0
 protected void bindDataSource(DataSourceDescriptor descr) {
   if (namingContext == null) {
     return;
   }
   log.info("Registering datasource: " + descr.getName());
   try {
     descr.bindSelf(namingContext);
   } catch (NamingException e) {
     log.error("Cannot bind datasource '" + descr.getName() + "' in JNDI", e);
   }
 }
コード例 #2
0
  @Override
  public DDF loadTextFile(DataSourceDescriptor dataSource) throws DDFException {
    String hiveTableName = UUID.randomUUID().toString().replace("-", "_");
    StringBuilder stringBuilder = new StringBuilder();
    List<String> columnNames = new ArrayList<>();
    List<Schema.Column> columnList = dataSource.getDataSourceSchema().getColumns();
    for (int i = 0; i < columnList.size(); ++i) {
      columnNames.add(columnList.get(i).getName());
      if (i == 0) {
        stringBuilder.append(columnList.get(i).getName() + " " + columnList.get(i).getType());
      } else {
        stringBuilder.append(
            ", " + columnList.get(i).getName() + " " + columnList.get(i).getType());
      }
    }
    String schemaStr = stringBuilder.toString();

    TextFileFormat textFileFormat = (TextFileFormat) (dataSource.getFileFormat());
    String quote = textFileFormat.getQuote();
    String delimiter = textFileFormat.getDelimiter();

    String serdesString =
        "ROW FORMAT SERDE 'com.bizo.hive.serde.csv.CSVSerde' "
            + "WITH serdeproperties ('separatorChar' = '"
            + delimiter
            + "', 'quoteChar' = '"
            + quote
            + "')";

    URI uri = dataSource.getDataSourceUri().getUri();
    String sqlCmd =
        "create external table "
            + hiveTableName
            + " ("
            + schemaStr
            + ") "
            + serdesString
            + " STORED AS TEXTFILE LOCATION '"
            + uri.toString()
            + "'";

    this.mDDFManager.sql(sqlCmd, false);
    DDF ddf = this.mDDFManager.sql2ddf(String.format("select * from %s", hiveTableName), false);

    ddf.setColumnNames(columnNames);
    return ddf;
  }
コード例 #3
0
 protected void unbindDataSource(DataSourceDescriptor descr) {
   if (namingContext == null) {
     return;
   }
   log.info("Unregistering datasource: " + descr.name);
   try {
     descr.unbindSelf(namingContext);
   } catch (NamingException cause) {
     log.error("Cannot unbind datasource '" + descr.name + "' in JNDI", cause);
   }
 }
コード例 #4
0
 protected void removeDataSource(DataSourceDescriptor contrib) {
   unbindDataSource(contrib);
   datasources.remove(contrib.getName());
 }
コード例 #5
0
 protected void addDataSource(DataSourceDescriptor contrib) {
   datasources.put(contrib.getName(), contrib);
   bindDataSource(contrib);
 }