Comments (7)
@seibert any thoughts on fast string operations with Numba?
Regarding pandas series if we know that all of the rows line up then its best to delay creating the series for as long as possible. The map
method might not be a big help. I suspect that a list comprehension is about as fast in many cases. Delaying using series would also help with the eventual desire to support straight NumPy.
from fastparquet.
The problem with strings in the above case is that Numba is basically not equipped to deal with a container that holds Python objects when generating code in nopython mode. I'm not sure what we would do here.
from fastparquet.
@sklam might have an idea for a hack that would allow us to jump back into Python mode to fetch the pointer to the string data for a given element.
from fastparquet.
Presumably numpy does this internally when you do astype("S")
on an object array?
Is it this call? https://docs.python.org/2/c-api/string.html#c.PyString_AsStringAndSize
Cython is able to do this, apparently: http://stackoverflow.com/questions/17511309/fast-string-array-cython
from fastparquet.
- For 8- and 16-bit ints (signed or not), may be faster, and certainly more compact, to use the bit-packing encoding (which will actually look just like
tostring()
) rather than expand to 32-bits; on read, the final datatype may well be 8- or 16-bit anyway.
Similarly, dictionary codes are always stored in bit-packing, and storing more bits to round up to 8 should be much faster than using the minimum number of bits per value. PR #39
from fastparquet.
- Writing or reading an optional column should not take significant additional time if there are no actual nulls. PR #33
from fastparquet.
The variable string encoding will remain outstanding, but with good fixed string and categorical options, it is less pressing.
Everything else here is complete, so closing this.
from fastparquet.
Related Issues (20)
- BUG: dataframe.empty with non-nano pd.DatetimeTZDtype HOT 2
- a python-3.12 windows wheel HOT 13
- Some `fastparquet`-related tests are failing on Python 3.10 HOT 10
- Regression due to `_from_sequence` HOT 1
- attrs persistance for Pandas HOT 1
- Nullable types for 1 row vs multiple rows HOT 3
- update_file_custom_metadata error when file has no properties.
- schema evolution when writing the row groups does not work HOT 4
- Bug loading parquet files with timezone information HOT 6
- When changing to a larger dtype, its size must be a advisor of the total size in bytes of the last axis of the array HOT 6
- PyArrow will become a required dependency with pandas 3.0
- Option to not close() after write() when writing to buffer HOT 3
- Support zoneinfo.ZoneInfo timezones
- Loading List of List of Strings leads to nans HOT 6
- Upcoming pandas (>2.2.0) raises "read-only" errors HOT 3
- Categorical dtype not preserved with fastparquet-write, pyarrow-read HOT 2
- Numpy 2: OverflowError with int96 HOT 4
- Fastparquet raises on import with numpy 2.0 rc HOT 5
- New release? HOT 4
- Issues with filtering when using to_pandas HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fastparquet.