import com.cloudera.sqoop.SqoopOptions; //导入方法依赖的package包/类
@Override
/** {@inheritDoc} */
public void applyOptions(CommandLine in, SqoopOptions out)
throws InvalidOptionsException {
try {
applyCommonOptions(in, out);
if (in.hasOption(DIRECT_ARG)) {
out.setDirectMode(true);
}
if (in.hasOption(BATCH_ARG)) {
out.setBatchMode(true);
}
if (in.hasOption(TABLE_ARG)) {
out.setTableName(in.getOptionValue(TABLE_ARG));
}
if (in.hasOption(COLUMNS_ARG)) {
String[] cols= in.getOptionValue(COLUMNS_ARG).split(",");
for (int i=0; i
cols[i] = cols[i].trim();
}
out.setColumns(cols);
}
if (in.hasOption(NUM_MAPPERS_ARG)) {
out.setNumMappers(Integer.parseInt(in.getOptionValue(NUM_MAPPERS_ARG)));
}
if (in.hasOption(MAPREDUCE_JOB_NAME)) {
out.setMapreduceJobName(in.getOptionValue(MAPREDUCE_JOB_NAME));
}
if (in.hasOption(EXPORT_PATH_ARG)) {
out.setExportDir(in.getOptionValue(EXPORT_PATH_ARG));
}
if (in.hasOption(JAR_FILE_NAME_ARG)) {
out.setExistingJarName(in.getOptionValue(JAR_FILE_NAME_ARG));
}
if (in.hasOption(UPDATE_KEY_ARG)) {
out.setUpdateKeyCol(in.getOptionValue(UPDATE_KEY_ARG));
}
if (in.hasOption(STAGING_TABLE_ARG)) {
out.setStagingTableName(in.getOptionValue(STAGING_TABLE_ARG));
}
if (in.hasOption(CLEAR_STAGING_TABLE_ARG)) {
out.setClearStagingTable(true);
}
if (in.hasOption(CALL_ARG)) {
out.setCall(in.getOptionValue(CALL_ARG));
}
applyValidationOptions(in, out);
applyNewUpdateOptions(in, out);
applyInputFormatOptions(in, out);
applyOutputFormatOptions(in, out);
applyCodeGenOptions(in, out, false);
applyHCatalogOptions(in, out);
applyOdpsOptions(in, out);
} catch (NumberFormatException nfe) {
throw new InvalidOptionsException("Error: expected numeric argument.\n"
+ "Try --help for usage.");
}
}