I'm wondering if somebody can provide some guidance on how to use
CsvBulkLoadTool from within a Java Class, instead of via the command line, as
is shown in the documentation. I'd like to determine if CsvBulkLoadTool ran
without throwing any exceptions. However, exceptions generated by
org.apache.phoenix.* don't seem to be thrown up to the calling method
(ToolRunner.run), or at least result in a non-zero return code.
Here is what I am doing:
import org.apache.phoenix.mapreduce.CsvBulkLoadTool;
import org.apache.hadoop.util.ToolRunner;
CsvBulkLoadTool csvBulkLoader = new CsvBulkLoadTool();
int tret;
String[] args = {"-d", "\t", "--table", "MyTableName", "--input",
"file://myfile.tsv"};
tret = ToolRunner.run(csvBulkLoader, args);
When I run this code, I get a return code (tret) of zero and no errors in the
console output. However, the data is not loaded into HBase. When running the
same commands on the command line, I discovered that Phoenix can throw various
errors (e.g. wrong column datatype, permission error, whatever...). But there
doesn't seem to be a way for me to discover these errors from either exceptions
that CsvBulkLoadTool throws or via the return code.
What's the best way to determine if CsvBulkLoadTool ran without error?
Thanks,
Jonathan