NarayanB commented on issue #12416:
URL: https://github.com/apache/arrow/issues/12416#issuecomment-1042969321


   import pandas as pd
   import polars as pl
   import pyarrow as pa
   import pyarrow.parquet as pq
   import pyarrow.dataset as ds
   
   def read_csv(csv_file):
        print("reading csv")
        csv = """pid1,pid2,intCol,strCol
        2010,10000,23455555508999,Peaceful
        2015,15000,7753285016841556620,Happy
        2020,25000,,World""".encode()
   
        good_df = (pl.read_csv(csv, dtypes={"intCol": pl.Utf8})
              .with_column(pl.col("intCol").str.replace("", "0").cast(pl.Int64))
              )
        bad_df = pl.read_csv(csv)
        df = good_df
        #df = bad_df
        print(df.head(10))
        table = df.to_arrow()
        print('Table Schema..\n',table.schema)
        return table
   
   def save_table(table, location):
       pq.write_to_dataset(table, location, partition_cols=['pid1','pid2'])
   
   def read_table(location):
       schema = pa.schema([ ('pid1', pa.int64()),
                            ('pid2', pa.int64())
   
       ])
       partition = ds.partitioning(schema=schema, flavor='hive')
       dataset = ds.dataset(location, partitioning=partition)
       table = dataset.to_table()
       print("Retrived table schema\n", table)
       df = pl.from_arrow(table)
       print(df.head(10))
   
   table = read_csv(None)
   save_table(table, '../data')
   read_table('../data')
   
   Please run this program twice once with df = good_df and next time df = 
bad_df. You will see the issue that the int64 value toggling between 
7753285016841556620 vs 7753285016841556992. You will have to clear the 
partition data for each run
   
   I think I issue is that for some very big int64 values having null in one 
field column creates the issue. There is no pandas involved here. I haven't 
seen the issue if the int64 field value is something like 10000 or 2500001 etc


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscr...@arrow.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to