Looks like the major bug from https://issues.apache.org/jira/browse/ARROW-1941 is back...
After I downgraded from 0.10.0 to 0.9.0, the error disappeared..
In order to debug this I saved the first 4 arrow tables to 4 parquet files and inspected the parquet files. The parquet schema is identical, but the Pandas Metadata is different.
It looks like a column which contains empty strings is getting typed as float64.