[ 
https://issues.apache.org/jira/browse/SPARK-17041?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15420105#comment-15420105
 ] 

Dongjoon Hyun commented on SPARK-17041:
---------------------------------------

Hi, [~barrybecker4]
I reproduced your problems and I think I can give you the solution.
{code}
scala> spark.read.format("csv").option("header", "false").option("inferSchema", 
"false").schema(StructType(Seq(StructField("c", StringType, false), 
StructField("C", StringType, false)))).csv("/tmp/csv_caseSensitive").show
org.apache.spark.sql.AnalysisException: Reference 'c' is ambiguous, could be: 
c#45, c#46.;
...

scala> sql("set spark.sql.caseSensitive=true")
res9: org.apache.spark.sql.DataFrame = [key: string, value: string]

scala> spark.read.format("csv").option("header", "false").option("inferSchema", 
"false").schema(StructType(Seq(StructField("c", StringType, false), 
StructField("C", StringType, false)))).csv("/tmp/csv_caseSensitive").show
+---+---+
|  c|  C|
+---+---+
| c1| C1|
|  1|  2|
+---+---+
{code}

> Columns in schema are no longer case sensitive when reading csv file
> --------------------------------------------------------------------
>
>                 Key: SPARK-17041
>                 URL: https://issues.apache.org/jira/browse/SPARK-17041
>             Project: Spark
>          Issue Type: Bug
>          Components: Input/Output
>    Affects Versions: 2.0.0
>            Reporter: Barry Becker
>
> It used to be (in spark 1.6.2) that I could read a csv file that had columns 
> with  names that differed only by case. For example, one column may be 
> "output" and another called "Output". Now (with spark 2.0.0) if I try to read 
> such a file, I get an error like this:
> {code}
> org.apache.spark.sql.AnalysisException: Reference 'Output' is ambiguous, 
> could be: Output#1263, Output#1295.;
> {code}
> The schema (dfSchema below) that I pass to the csv read looks like this:
> {code}
> StructType( StructField(Output,StringType,true), ... 
> StructField(output,StringType,true), ...)
> {code}
> The code that does the read is this
> {code}
> sqlContext.read
>           .format("csv")
>           .option("header", "false") // Use first line of all files as header
>           .option("inferSchema", "false") // Automatically infer data types
>           .schema(dfSchema)
>           .csv(dataFile)
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to