hi!

Casting another int column that is not a partition column fails with the same 
error. 

The Schema before the cast (column names are anonymized):

root
|-- valueObject: struct (nullable = true)
|    |-- value1: string (nullable = true)
|    |-- value2: string (nullable = true)
|    |-- value3: timestamp (nullable = true)
|    |-- value4: string (nullable = true)
|-- partitionColumn2: string (nullable = true)
|-- partitionColumn3: timestamp (nullable = true)
|-- partitionColumn1: integer (nullable = true)

I wanted to cast partitionColumn1 to String which gives me the described error. 

Best,
Rico


> Am 17.02.2022 um 09:56 schrieb ayan guha <guha.a...@gmail.com>:
> 
> Can you try to cast any other Int field which is NOT a partition column? 
> 
> On Thu, 17 Feb 2022 at 7:34 pm, Gourav Sengupta <gourav.sengu...@gmail.com> 
> wrote:
>> Hi,
>> 
>> This appears interesting, casting INT to STRING has never been an issue for 
>> me.
>> 
>> Can you just help us with the output of : df.printSchema()  ?
>> 
>> I prefer to use SQL, and the method I use for casting is: CAST(<<column 
>> name>> AS STRING) <<alias>>.
>> 
>> Regards,
>> Gourav
>> 
>> 
>> 
>> 
>> 
>> 
>> On Thu, Feb 17, 2022 at 6:02 AM Rico Bergmann <i...@ricobergmann.de> wrote:
>>> Here is the code snippet:
>>> 
>>> var df = session.read().parquet(basepath);
>>> for(Column partition : partitionColumnsList){
>>>   df = df.withColumn(partition.getName(), 
>>> df.col(partition.getName()).cast(partition.getType()));
>>> }
>>> 
>>> Column is a class containing Schema Information, like for example the name 
>>> of the column and the data type of the column. 
>>> 
>>> Best, Rico.
>>> 
>>> > Am 17.02.2022 um 03:17 schrieb Morven Huang <morven.hu...@gmail.com>:
>>> > 
>>> > Hi Rico, you have any code snippet? I have no problem casting int to 
>>> > string.
>>> > 
>>> >> 2022年2月17日 上午12:26,Rico Bergmann <i...@ricobergmann.de> 写道:
>>> >> 
>>> >> Hi!
>>> >> 
>>> >> I am reading a partitioned dataFrame into spark using automatic type 
>>> >> inference for the partition columns. For one partition column the data 
>>> >> contains an integer, therefor Spark uses IntegerType for this column. In 
>>> >> general this is supposed to be a StringType column. So I tried to cast 
>>> >> this column to StringType. But this fails with AnalysisException “cannot 
>>> >> cast int to string”.
>>> >> 
>>> >> Is this a bug? Or is it really not allowed to cast an int to a string?
>>> >> 
>>> >> I’m using Spark 3.1.1
>>> >> 
>>> >> Best regards
>>> >> 
>>> >> Rico. 
>>> >> 
>>> >> ---------------------------------------------------------------------
>>> >> To unsubscribe e-mail: user-unsubscr...@spark.apache.org
>>> >> 
>>> > 
>>> > 
>>> > ---------------------------------------------------------------------
>>> > To unsubscribe e-mail: user-unsubscr...@spark.apache.org
>>> > 
>>> 
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe e-mail: user-unsubscr...@spark.apache.org
> -- 
> Best Regards,
> Ayan Guha

Reply via email to