Hi,

I am using SparkSQL 1.1.0.

Actually, I have a table as following:

root
 |-- account_id: string (nullable = false)
 |-- Birthday: string (nullable = true)
 |-- preferstore: string (nullable = true)
 |-- registstore: string (nullable = true)
 |-- gender: string (nullable = true)
 |-- city_name_en: string (nullable = true)
 |-- register_date: string (nullable = true)
 |-- zip: string (nullable = true)

As you see, all fields have a String type. When creating the table, I did
something like:

*StructType(
          StructField(
            fields.head, StringType, nullable = false) +: // key can not be
nullable
            fields.tail.map(fieldName => StructField(fieldName.trim,
StringType, nullable = true)))*

where *fields* are Array[String] containing field names.

Need to point out that "*preferstore*", "*registstore*" are essentially
numeric, but string in table.

I find that when using these two String fields to do some numeric
comparison, SparkSQL works fine. For example,

*sql("select * from customer where preferstore < 3 limit 5")*

This query returns a correct result.

I don't know well the implementation details on SparkSQL. I worried about
whether there are some side effects here ? Is this an intentional feature ?
Any implicit conversion involved ?

Thank you.

Hao



--
View this message in context: 
http://apache-spark-user-list.1001560.n3.nabble.com/SparkSQL-StringType-for-numeric-comparison-tp16295.html
Sent from the Apache Spark User List mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@spark.apache.org
For additional commands, e-mail: user-h...@spark.apache.org

Reply via email to