import decimal import pandas csv_path = '' parquet_path = '' rates = ['activityRate', 'unitPriceUSD', 'withholdingTaxUSD'] headers = [ 'txnId', 'activityRate', 'countryId', 'isrc', 'labelId', 'quantity', 'saleCurrencyId', 'storeId', 'transactionDate', 'transactionTypeId', 'unitPriceUSD', 'upc', 'withholdingTaxUSD' ] schema = { 'txnId': 'int64', 'activityRate': 'object', 'countryId': 'int32', 'isrc': 'object', 'labelId': 'int32', 'quantity': 'int32', 'saleCurrencyId': 'int32', 'storeId': 'int32', 'transactionDate': 'object', 'transactionTypeId': 'int32', 'unitPriceUSD': 'object', 'upc': 'int64', 'withholdingTaxUSD': 'object' } df = pandas.read_csv(csv_path, header=None, names=headers, delimiter='\t') df.dtypes df = df.astype(schema) df.dtypes for rate in rates: df[rate] = df[rate].astype(str).map(decimal.Decimal) df.dtypes df.to_parquet(parquet_path)