<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Why saving pyspark df always converting string field to number? in Get Started Discussions</title>
    <link>https://community.databricks.com/t5/get-started-discussions/why-saving-pyspark-df-always-converting-string-field-to-number/m-p/70071#M7270</link>
    <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;import pandas as pd

from pyspark.sql.types import StringType, IntegerType

from pyspark.sql.functions import col

 

save_path = os.path.join(base_path, stg_dir, "testCsvEncoding")

d = [{"code": "00034321"}, {"code": "55964445226"}]

df = pd.DataFrame(d)

spark_df = spark.createDataFrame(df)

spark_df.display()

field = "code"

spark_df = spark_df.withColumn(field, col(field).cast(StringType()))

spark_df.display()

spark_df.coalesce(1).write.mode('overwrite').format("csv").option("header", "true").option("encoding", "gbk").save(save_path)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;example codes are as above, i am trying to convert pandas df to pyspark df, and then save data to a csv file, but somehow it always convert a string field to a number field in csv file as attached. Anyone can help?&lt;/P&gt;</description>
    <pubDate>Tue, 21 May 2024 07:24:47 GMT</pubDate>
    <dc:creator>georgeyjy</dc:creator>
    <dc:date>2024-05-21T07:24:47Z</dc:date>
    <item>
      <title>Why saving pyspark df always converting string field to number?</title>
      <link>https://community.databricks.com/t5/get-started-discussions/why-saving-pyspark-df-always-converting-string-field-to-number/m-p/70071#M7270</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;import pandas as pd

from pyspark.sql.types import StringType, IntegerType

from pyspark.sql.functions import col

 

save_path = os.path.join(base_path, stg_dir, "testCsvEncoding")

d = [{"code": "00034321"}, {"code": "55964445226"}]

df = pd.DataFrame(d)

spark_df = spark.createDataFrame(df)

spark_df.display()

field = "code"

spark_df = spark_df.withColumn(field, col(field).cast(StringType()))

spark_df.display()

spark_df.coalesce(1).write.mode('overwrite').format("csv").option("header", "true").option("encoding", "gbk").save(save_path)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;example codes are as above, i am trying to convert pandas df to pyspark df, and then save data to a csv file, but somehow it always convert a string field to a number field in csv file as attached. Anyone can help?&lt;/P&gt;</description>
      <pubDate>Tue, 21 May 2024 07:24:47 GMT</pubDate>
      <guid>https://community.databricks.com/t5/get-started-discussions/why-saving-pyspark-df-always-converting-string-field-to-number/m-p/70071#M7270</guid>
      <dc:creator>georgeyjy</dc:creator>
      <dc:date>2024-05-21T07:24:47Z</dc:date>
    </item>
    <item>
      <title>Re: Why saving pyspark df always converting string field to number?</title>
      <link>https://community.databricks.com/t5/get-started-discussions/why-saving-pyspark-df-always-converting-string-field-to-number/m-p/70073#M7271</link>
      <description>&lt;P&gt;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/105545"&gt;@georgeyjy&lt;/a&gt;&amp;nbsp;&lt;BR /&gt;Try opening the CSV as text editor. I bet that Excel is automatically trying to detect the schema of CSV thus it thinks that it's an integer.&lt;/P&gt;</description>
      <pubDate>Tue, 21 May 2024 07:38:42 GMT</pubDate>
      <guid>https://community.databricks.com/t5/get-started-discussions/why-saving-pyspark-df-always-converting-string-field-to-number/m-p/70073#M7271</guid>
      <dc:creator>daniel_sahal</dc:creator>
      <dc:date>2024-05-21T07:38:42Z</dc:date>
    </item>
    <item>
      <title>Re: Why saving pyspark df always converting string field to number?</title>
      <link>https://community.databricks.com/t5/get-started-discussions/why-saving-pyspark-df-always-converting-string-field-to-number/m-p/70078#M7272</link>
      <description>&lt;P&gt;Oh, that's it, i tried to open it in text editor and the result is correct.&lt;/P&gt;&lt;P&gt;Many thanks!&lt;/P&gt;</description>
      <pubDate>Tue, 21 May 2024 08:36:20 GMT</pubDate>
      <guid>https://community.databricks.com/t5/get-started-discussions/why-saving-pyspark-df-always-converting-string-field-to-number/m-p/70078#M7272</guid>
      <dc:creator>georgeyjy</dc:creator>
      <dc:date>2024-05-21T08:36:20Z</dc:date>
    </item>
  </channel>
</rss>

