title: Read and write empty string "" vs NULL in Spark 2.0.1
body: <p><code>CSVFileFormat</code> seems to read and write empty values as null for string columns. I have searched around but have been unable to find clear information about this, so I put together a simple test.</p>
  
  <pre><code>val df = session.createDataFrame(Seq(
      (0, "a"),
      (1, "b"),
      (2, "c"),
      (3, ""),
      (4, null)
  ))  
  
  df.coalesce(1).write.mode("overwrite").format("csv") 
      .option("delimiter", ",")
      .option("nullValue", "unknown")
      .option("treatEmptyValuesAsNulls", "false")
      .save(s"$path/test")
  </code></pre>
  
  <p>This outputs:</p>
  
  <pre><code>0,a
  1,b
  2,c
  3,unknown
  4,unknown
  </code></pre>
  
  <p>So, it appears to be treating both empty strings and <code>null</code> values as <code>null</code>. The same thing happens when reading a CSV file with empty quoted strings and nulls. Is there currently any way to treat these differently?</p>