title: Error in importing a tsv to hbase
body: <p>I created a table in <a href="/questions/tagged/hbase" class="post-tag" title="show questions tagged &#39;hbase&#39;" rel="tag">hbase</a> using: </p>
  
  <pre><code>create 'Province','ProvinceINFO'
  </code></pre>
  
  <p>Now, I want to import my data from a <a href="/questions/tagged/tsv" class="post-tag" title="show questions tagged &#39;tsv&#39;" rel="tag">tsv</a> file to it. My table in tsv have two columns: <code>ProvinceID</code> (as pk), <code>ProvinceName</code></p>
  
  <p>I am using the below code for import:</p>
  
  <pre><code>bin/hbase org.apache.hadoop.hbase.mapreduce.ImportTsv '-Dimporttsv.separator=,'
  -Dimporttsv.columns= HBASE_ROW_KEY, ProvinceINFO:ProvinceName Province /usr/data
  /Province.csv
  </code></pre>
  
  <p>but it gives me this error:</p>
  
  <pre><code>ERROR: No columns specified. Please specify with -Dimporttsv.columns=...
  Usage: importtsv -Dimporttsv.columns=a,b,c &lt;tablename&gt; &lt;inputdir&gt;
  
  Imports the given input directory of TSV data into the specified table.
  
   The column names of the TSV data must be specified using the -Dimporttsv.columns 
  option. This option takes the form of comma-separated column names, where each
  column name is either a simple column family, or a columnfamily:qualifier. The special
  column name HBASE_ROW_KEY is used to designate that this column should be used
  as the row key for each imported record. You must specify exactly one column
  to be t he row key, and you must specify a column name for every column that exists in 
  the
  input data. Another special columnHBASE_TS_KEY designates that this column should be
  used as timestamp for each record. Unlike HBASE_ROW_KEY, HBASE_TS_KEY is optional.
  You must specify at most one column as timestamp key for each imported record.
  Record with invalid timestamps (blank, non-numeric) will be treated as bad record.
  Note: if you use this option, then 'importtsv.timestamp' option will be ignored.
  
  By default importtsv will load data directly into HBase. To instead generate
  HFiles of data to prepare for a bulk data load, pass the option:
    -Dimporttsv.bulk.output=/path/for/output
  Note: if you do not use this option, then the target table must already exist in HBase
  
  Other options that may be specified with -D include:
  -Dimporttsv.skip.bad.lines=false - fail if encountering an invalid line
  '-Dimporttsv.separator=|' - eg separate on pipes instead of tabs
  -Dimporttsv.timestamp=currentTimeAsLong - use the specified timestamp for the import
  -Dimporttsv.mapper.class=my.Mapper - A user-defined Mapper to use instead of 
  org.apache.hadoop.hbase.mapreduce.TsvImporterMapper
  -Dmapred.job.name=jobName - use the specified mapreduce job name for the import
  For performance consider the following options:
  -Dmapred.map.tasks.speculative.execution=false
  -Dmapred.reduce.tasks.speculative.execution=false
  </code></pre>