anchor.diff:  val options = Map("pushdown"<1> -> "true", "es.nodes"<2> -> "someNode", "es.port" -> "9200")
   
   // Spark 1.4 style
  -val spark14DF = sql.read().format("org.elasticsearch.spark.sql")
  -                          .options<3>(options).load("spark/index")
  +val spark14DF = sql.read.format("org.elasticsearch.spark.sql")
  +                        .options<3>(options).load("spark/index")
   ----
   
   <1> `pushdown` option - specific to Spark data sources
  
positive.code: |===
  | Name | Default value| Description
  
  | `path`           | {es} index/type    | _required_
  | `pushdown`       | `true`             | Whether to translate (__push-down__) Spark SQL into {es} Query DSL
  | `strict`         | `false`            | Whether to use _exact_ (not analyzed) matching or not (analyzed)
  
  |===
  
  
negative.code: [source,scala]
  ----
  // Spark 1.4 style
  val df = sql.read<1>.format("org.elasticsearch.spark.sql"<2>).load("spark/index"<3>)
  ----
  
  <1> +SQLContext+ _experimental_ +read+ method for arbitrary data sources
  <2> the data source provider - +org.elasticsearch.spark.sql+
  <3> path or resource to load - in this case the index/type in {es}
  
  In Spark 1.5, this can be further simplified to:
  
  [source,scala]
  ----
  // Spark 1.5 s
  val df = sql.read.format("es"<1>).load("spark/index")
  ----
  
  <1> Use +es+ as an alias instead of the full package name for the +DataSource+ provider
  
  
  Whatever API is used, once created, the +DataFrame+ can be accessed freely to manipulate the data.
  
  The __sources__ declaration also allows specific options to be passed in, namely:
  