title: How does Apache Flink parallelize reading of a CSV file
body: <p>I am using <code>readCsvFile(path)</code> function in Apache Flink api to read a CSV file and store it in a list variable. How does it work using multiple threads? 
  For example, is it splitting the file based on some statistics? if yes, what statistics? Or does it read the file line by line and then send the lines to threads to process them?</p>
  
  <p>Here is the sample code:</p>
  
  <pre><code>//default parallelism is 4
  ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
  csvPath="data/weather.csv";
  List&lt;Tuple2&lt;String, Double&gt;&gt; csv= env.readCsvFile(csvPath)
                          .types(String.class,Double.class)
                          .collect();
  </code></pre>
  
  <p>Suppose that we have a 800mb CSV file on local disk, how does it distribute the work between those 4 threads?</p>