These 54 commits are when the Protocol Buffers files have changed:
| Commit: | b030820 | |
|---|---|---|
| Author: | Shaofeng Shi | |
| Committer: | Shaofeng Shi | |
remove unused files
This commit does not contain any .proto files.
| Commit: | e264e3f | |
|---|---|---|
| Author: | Shaofeng Shi | |
| Committer: | Shaofeng Shi | |
add gravitino filesystem and gvfs support
| Commit: | 2b25716 | |
|---|---|---|
| Author: | Cory Grinstead | |
| Committer: | GitHub | |
chore!: remove spark connect (#5743) # Remove Spark Connect support ## Motivation We've maintained Spark Connect compatibility for about a year with minimal adoption or interest from users. ## Changes removes spark connect from codebase ## Rationale - No user traction: Haven't seen meaningful adoption despite being available for ~1 year - Maintenance burden: Substantial codebase to maintain, test, and keep compatible This simplifies the codebase and lets us focus on what makes Daft unique.
This commit does not contain any .proto files.
| Commit: | 9c96b42 | |
|---|---|---|
| Author: | Cory Grinstead | |
| Committer: | GitHub | |
chore: remove ir and proto crates (#5742) ## Changes Made They are unused and taking up space, lets just remove them. ## Related Issues https://github.com/Eventual-Inc/Daft/pull/5736
The documentation is generated from this commit.
| Commit: | 9eea183 | |
|---|---|---|
| Author: | TheR1sing3un | |
| Committer: | GitHub | |
feat: Allow users to disable the suffix range request (#5188) At present, there are still many storage backends that do not support the `suffix range` request. I hope to still retain a parameter for users to control for themselves whether to use `suffix range` for data reading. > Why not directly tag the `suffix range` feature for each backend at the IOClient level? Because some are in the form of protocols, such as S3, which is a standard protocol, many different object storage implementations will attempt to follow the S3 protocol. But, there are also many specific implementations that do not support the `suffix range` capability. We cannot directly control at the S3 level whether `suffix range` can be supported ## Changes Made 1. Allow users to disable the suffix range request because some storage backends do not support suffix range ## Related Issues ## Checklist - [x] Documented in API Docs (if applicable) - [x] Documented in User Guide (if applicable) - [x] If adding a new documentation page, doc is added to `docs/mkdocs.yml` navigation - [x] Documentation builds and is formatted properly (tag @/ccmao1130 for docs review) --------- Co-authored-by: Cory Grinstead <cory.grinstead@gmail.com> Co-authored-by: Colin Ho <colin.ho99@gmail.com>
| Commit: | 3f2eb52 | |
|---|---|---|
| Author: | Cory Grinstead | |
| Committer: | GitHub | |
Merge branch 'main' into cory/udf-func-sig
| Commit: | d0a945c | |
|---|---|---|
| Author: | stayrascal | |
| Committer: | GitHub | |
feat: support customized retries error message of S3 request (#5447) ## Changes Made support configure some customized keywords of s3 error message, if the configured keywords matched the actual s3 error message, which will retry the s3 request based on S3 ClassifyRetry. Notes: we retried `UnexpectedEof` error last time, and we meet a new timeout error mentioned in https://github.com/Eventual-Inc/Daft/issues/5043 during UploadPart, I think we might not list all potential transient errors, so it's better to support configured these error messages, so that we don't need modify code once meet another error. ## Related Issues https://github.com/Eventual-Inc/Daft/issues/5043 ## Checklist - [ ] Documented in API Docs (if applicable) - [ ] Documented in User Guide (if applicable) - [ ] If adding a new documentation page, doc is added to `docs/mkdocs.yml` navigation - [ ] Documentation builds and is formatted properly --------- Co-authored-by: wuzhiping <wuzhiping.007@bytedance.com>
| Commit: | 72b890a | |
|---|---|---|
| Author: | universalmind303 | |
Merge branch 'main' of https://github.com/Eventual-Inc/Daft into cory/udf-func-sig
| Commit: | c6e9a80 | |
|---|---|---|
| Author: | stayrascal | |
| Committer: | GitHub | |
feat: add tos object source (#5372) ## Changes Made Add a new object source based on tos object store. This is the first PR to implement a e2e io flow via tos object source. ## Related Issues https://github.com/Eventual-Inc/Daft/issues/5371 ## Checklist - [ ] Documented in API Docs (if applicable) - [ ] Documented in User Guide (if applicable) - [ ] If adding a new documentation page, doc is added to `docs/mkdocs.yml` navigation - [ ] Documentation builds and is formatted properly --------- Co-authored-by: wuzhiping <wuzhiping.007@bytedance.com>
| Commit: | 18e532e | |
|---|---|---|
| Author: | universalmind303 | |
feat: add planning time validation on rowwise function signatures
| Commit: | bf2d68b | |
|---|---|---|
| Author: | Colin Ho | |
| Committer: | GitHub | |
feat: Async batch func (#5459) ## Changes Made Async batch func. Implementation is pretty much the same as async row wise func ## Related Issues <!-- Link to related GitHub issues, e.g., "Closes #123" --> ## Checklist - [ ] Documented in API Docs (if applicable) - [ ] Documented in User Guide (if applicable) - [ ] If adding a new documentation page, doc is added to `docs/mkdocs.yml` navigation - [ ] Documentation builds and is formatted properly
| Commit: | e78c7fa | |
|---|---|---|
| Author: | Cory Grinstead | |
| Committer: | GitHub | |
feat: retryable udfs (#5392) ## Changes Made currently only implemented for rowwise scalar udf. TODO: the error message could be a bit better as the row index is kinda useless without being able to correlate it back to a batch. example usage ```py image_tensor = np.random.randint(0, 256, (224, 224, 3), dtype=np.uint8) images = [image_tensor] * 10_000 df = daft.from_pydict({"images": images}) @daft.func(use_process=True, return_dtype=daft.DataType.image(), max_retries=3, on_error="raise") def random_fail(x): # Randomly fail approximately 20% of the time if random.random() < 0.2: raise ValueError("Random failure in processing") return x print(df.select(random_fail(df["images"])).collect()) ``` ``` daft.exceptions.DaftCoreException: DaftError::ComputeError Failed to execute Python UDF on some rows : 746: DaftError::PyO3Error ValueError: Random failure in processing 1171: DaftError::PyO3Error ValueError: Random failure in processing 1791: DaftError::PyO3Error ValueError: Random failure in processing 1831: DaftError::PyO3Error ValueError: Random failure in processing 2263: DaftError::PyO3Error ValueError: Random failure in processing 2364: DaftError::PyO3Error ValueError: Random failure in processing 2896: DaftError::PyO3Error ValueError: Random failure in processing 3030: DaftError::PyO3Error ValueError: Random failure in processing 3342: DaftError::PyO3Error ValueError: Random failure in processing 3484: DaftError::PyO3Error ValueError: Random failure in processing 4389: DaftError::PyO3Error ValueError: Random failure in processing 4600: DaftError::PyO3Error ValueError: Random failure in processing 4936: DaftError::PyO3Error ValueError: Random failure in processing 5018: DaftError::PyO3Error ValueError: Random failure in processing 6056: DaftError::PyO3Error ValueError: Random failure in processing 7825: DaftError::PyO3Error ValueError: Random failure in processing 8853: DaftError::PyO3Error ValueError: Random failure in processing 9291: DaftError::PyO3Error ValueError: Random failure in processing 9609: DaftError::PyO3Error ValueError: Random failure in processing ``` ## Related Issues <!-- Link to related GitHub issues, e.g., "Closes #123" --> ## Checklist - [ ] Documented in API Docs (if applicable) - [ ] Documented in User Guide (if applicable) - [ ] If adding a new documentation page, doc is added to `docs/mkdocs.yml` navigation - [ ] Documentation builds and is formatted properly --------- Co-authored-by: Colin Ho <colin.ho99@gmail.com>
| Commit: | f24b3d5 | |
|---|---|---|
| Author: | universalmind303 | |
wip
| Commit: | 9bd90d9 | |
|---|---|---|
| Author: | universalmind303 | |
wip
| Commit: | 83c69ee | |
|---|---|---|
| Author: | Colin Ho | |
add retries
| Commit: | c113e35 | |
|---|---|---|
| Author: | Kev Wang | |
| Committer: | GitHub | |
feat: batch UDF with `@daft.func.batch` (#5362) ## Changes Made Add support for batch UDFs in our new UDF decorators with `@daft.func.batch` as well as `@daft.method.batch`. ## Related Issues <!-- Link to related GitHub issues, e.g., "Closes #123" --> ## Checklist - [x] Documented in API Docs (if applicable) - [x] Documented in User Guide (if applicable) - [x] If adding a new documentation page, doc is added to `docs/mkdocs.yml` navigation - [x] Documentation builds and is formatted properly
| Commit: | c9044a2 | |
|---|---|---|
| Author: | Kevin Wang | |
feat: batch UDF with
| Commit: | edd490c | |
|---|---|---|
| Author: | Kev Wang | |
| Committer: | GitHub | |
feat: @daft.cls decorator for new class UDFs (#5350) ## Changes Made Add the `@daft.cls` and `@daft.method` decorators for constructing a Daft class. Some additional changes: - Did a bit of refactoring on the Python side because I did not want to have to implement a whole matrix of UDFs (func vs class, row-wise vs async vs generator). Ended up combining all the function variants into a `Func` class and the code is decently clean. - Looks like we added `use_process` in #5323 but I don't think it was actually hooked up to use processes under the hood. My changes in this PR should fix that - Restructured the class-type decorators since overriding `__new__` seems to make type checkers unhappy. Resolves #5284 I initially implemented a `@daft.setup` that users would use in lieu of having an `__init__` method, but after writing several examples with it, it just felt like a very obtuse way to introduce this whole new thing just to tell users that initialization is lazy. We'd have to explain that the arguments in the constructor are passed into the setup method, and that you have to add this decorator. We had some discussion about this in the working session and I don't think others thought a lazy init would be an issue anyway. ## Related Issues <!-- Link to related GitHub issues, e.g., "Closes #123" --> ## Checklist - [x] Documented in API Docs (if applicable) - [x] Documented in User Guide (if applicable) - [x] If adding a new documentation page, doc is added to `docs/mkdocs.yml` navigation - [x] Documentation builds and is formatted properly
| Commit: | 2ff3501 | |
|---|---|---|
| Author: | Colin Ho | |
| Committer: | GitHub | |
feat: Lazy `from_glob_path` (#5235) ## Changes Made Integrate `from_glob_path` into dataframe execution instead of immediately materializing. This code used to hang (> 5 mins and then i killed it) now takes 5s ``` import daft from daft.expressions import col df = (daft .from_glob_path( "s3://eventual-data-test-bucket/digitalcorpora/pdfs/") # 8M pdfs .with_column('image', col('path').url.download()) ) df.show() ``` glob_path go brr ## Related Issues <!-- Link to related GitHub issues, e.g., "Closes #123" --> ## Checklist - [ ] Documented in API Docs (if applicable) - [ ] Documented in User Guide (if applicable) - [ ] If adding a new documentation page, doc is added to `docs/mkdocs.yml` navigation - [ ] Documentation builds and is formatted properly (tag @/ccmao1130 for docs review)
| Commit: | cd6ebd5 | |
|---|---|---|
| Author: | Cory Grinstead | |
| Committer: | GitHub | |
feat: add `use_process` flag for `@daft.func(...)` (#5323) ## Changes Made adds `use_process` to daft.func to allow same performance benefits as `use_process` for `daft.udf`. ## Related Issues <!-- Link to related GitHub issues, e.g., "Closes #123" --> ## Checklist - [ ] Documented in API Docs (if applicable) - [ ] Documented in User Guide (if applicable) - [ ] If adding a new documentation page, doc is added to `docs/mkdocs.yml` navigation - [ ] Documentation builds and is formatted properly
| Commit: | 3d6385b | |
|---|---|---|
| Author: | Colin Ho | |
protos
| Commit: | 3de4b8d | |
|---|---|---|
| Author: | universalmind303 | |
add use_process flag to daft.func
| Commit: | d0ce5a4 | |
|---|---|---|
| Author: | Kev Wang | |
| Committer: | GitHub | |
refactor: move literal to daft-core (#4928) ## Changes Made This is part of my overall work to [unify type conversions](https://www.notion.so/Daft-Python-Type-Conversions-240091bd8634808abf18e00abc9b7fc8?source=copy_link) and is in particular cleanup that I wanted to get done before adding more literal variants. The crux of this PR is the move of `LiteralValue` from `daft-dsl` to `daft-core`. This serves several purposes: 1. Series -> Literal conversion can now be delegated to the individual array types. This is a lot cleaner than doing manual downcasts based on dtype, and will allow for conversion into literal to work even if a data type has multiple physical implementations. 2. `Vec<Literal>` -> Series conversion can now be implemented as a `TryFrom`, which is more idiomatic. Literal -> Series can also be a `From` now. 3. This creates a cleaner separation between literals and expressions, whereas before they could depend on each other. Instead, literals and series are more tightly associated now, which is more sensible as literals are pretty much the scalar counterparts to series. Additional changes: - Renamed `LiteralValue` to `Literal` and the original `Literal` trait was removed in favor of implementing `From<Literal>` - Removed `Literal::FixedSizeBinary`. I don't plan on adding the fixed size/shape variants for the other types so this was kind of an odd one out. Removing it does not remove any user-facing functionality anyway, but it does simplify the implementation so I chose to go with it. - Added `Literal::Float32` - Moved `PyObjectWrapper` from `daft-dsl` to `common-py-serde` so we can use it in `daft-core` ## Related Issues https://www.notion.so/Daft-Python-Type-Conversions-240091bd8634808abf18e00abc9b7fc8?source=copy_link ## Checklist - [x] Documented in API Docs (if applicable) - [x] Documented in User Guide (if applicable) - [x] If adding a new documentation page, doc is added to `docs/mkdocs.yml` navigation - [x] Documentation builds and is formatted properly (tag @/ccmao1130 for docs review)
| Commit: | e86fa53 | |
|---|---|---|
| Author: | Kevin Wang | |
refactor: move literal to daft-core
| Commit: | fa4ee67 | |
|---|---|---|
| Author: | Zhenchao Wang | |
| Committer: | GitHub | |
feat: Add offset operator support to DataFrame for Native Runner (#4582)
| Commit: | a11c49b | |
|---|---|---|
| Author: | Sammy Sidhu | |
Merge branch 'main' of https://github.com/Eventual-Inc/Daft into sammy/add-buf-publishing
| Commit: | af29f50 | |
|---|---|---|
| Author: | Sammy Sidhu | |
add go workspace
| Commit: | bf5d971 | |
|---|---|---|
| Author: | Kev Wang | |
| Committer: | GitHub | |
chore: new code path for scalar UDF (#4814) ## Changes Made Was trying to get kwargs to work with scalar UDFs, decided to bite the bullet and build out the entire code path for the new UDFs so that it no longer relies on the legacy UDF code. Turned out to be quite simple actually, the complexity of the legacy UDF code is largely from the class UDF stuff we did. Additional changes: - add ability to specify kwargs to UDF - remove `@daft.func.batch`. It was just an alias to `@daft.udf` anyway, I think we should actually think about it a bit more since I don't think I want the batch UDF to behave exactly like the current UDF either. - Rename Python UDF to legacy Python UDF ## Related Issues Closes https://github.com/Eventual-Inc/Daft/issues/4729 ## Checklist - [x] Documented in API Docs (if applicable) - [x] Documented in User Guide (if applicable) - [x] If adding a new documentation page, doc is added to `docs/mkdocs.yml` navigation - [x] Documentation builds and is formatted properly (tag @/ccmao1130 for docs review)
| Commit: | fca11b7 | |
|---|---|---|
| Author: | Srinivas Lade | |
| Committer: | GitHub | |
perf: Parallel stateless UDFs in native runner (#4477)
| Commit: | 4c865a4 | |
|---|---|---|
| Author: | Srinivas Lade | |
Addressed comments and CI
| Commit: | dc4ac22 | |
|---|---|---|
| Author: | Sammy Sidhu | |
commit this so far
| Commit: | fc33728 | |
|---|---|---|
| Author: | Srinivas Lade | |
Override v1 proto instead
| Commit: | 835d7d1 | |
|---|---|---|
| Author: | Srinivas Lade | |
More issues
| Commit: | 951f3c9 | |
|---|---|---|
| Author: | Srinivas Lade | |
Compiling
| Commit: | 86fa79c | |
|---|---|---|
| Author: | Srinivas Lade | |
Figure out proto
| Commit: | a52445c | |
|---|---|---|
| Author: | R. C. Howell | |
| Committer: | GitHub | |
feat: creates daft-ir and daft-proto (#4539) ## Changes Made * Creates a `daft-ir` crate for a consolidate IR view + from/to proto implementations (WIP). * Creates a `daft-proto` crate which holds daft's IR protobuf definitions. * Adds initial schema, datatype, expression (rex), and logical plan (rel) definitions. ## TODOs. * The exports (and structure) are not finalized. * Effectively all relational operator (rel) definitions. * Testing. testing. testing. ## Related Issues * n/a ## Checklist - [n/a] Documented in API Docs (if applicable) - [n/a] Documented in User Guide (if applicable) - [n/a] If adding a new documentation page, doc is added to `docs/mkdocs.yml` navigation - [n/a] Documentation builds and is formatted properly (tag @/ccmao1130 for docs review)
| Commit: | acb5b54 | |
|---|---|---|
| Author: | R. Conner Howell | |
proto aggregations
| Commit: | 09d1b6a | |
|---|---|---|
| Author: | R. Conner Howell | |
proto functions and columns
| Commit: | 75a9e47 | |
|---|---|---|
| Author: | R. Conner Howell | |
proto proto proto
| Commit: | e903254 | |
|---|---|---|
| Author: | R. Conner Howell | |
address pr factoring feedback
| Commit: | 3701d00 | |
|---|---|---|
| Author: | R. Conner Howell | |
updates project structure
| Commit: | 681cbab | |
|---|---|---|
| Author: | R. Conner Howell | |
basic expr protos
| Commit: | dafa352 | |
|---|---|---|
| Author: | R. Conner Howell | |
create .run with the tron service
| Commit: | c54fa12 | |
|---|---|---|
| Author: | R. Conner Howell | |
schema protos
| Commit: | 9d5cceb | |
|---|---|---|
| Author: | R. Conner Howell | |
backup
| Commit: | 786c134 | |
|---|---|---|
| Author: | R. Conner Howell | |
creates daft-proto
| Commit: | 8090247 | |
|---|---|---|
| Author: | universalmind303 | |
revert accidental change
The documentation is generated from this commit.
| Commit: | abb631b | |
|---|---|---|
| Author: | universalmind303 | |
pr cleanup
| Commit: | f566125 | |
|---|---|---|
| Author: | Andrew Gazelka | |
| Committer: | GitHub | |
[FEAT] add spark-connect protocol (#3189) This PR adds a script-based approach for generating the Spark Connect protobuf code, eliminating the need for developers to have the protobuf compiler (protoc) installed locally. Key changes: - Added a new `spark-connect-script` crate that uses `tonic-build` to compile the .proto files into Rust code at build time - The script outputs the generated code as a string which can then be stored directly in the codebase - Added the generated Rust code to `src/spark-connect/src/lib.rs` - Updated workspace members to include both new crates - The proto files are copied from Spark's codebase and cover the full Connect protocol including base, catalog, commands, common, expressions, relations and types This approach makes it easier for developers to work with the Spark Connect protocol since they don't need to manage protoc installation and versioning. The generated code is checked into the repo and can be reviewed/updated as needed. Dependencies added: - prost: For protobuf encoding/decoding - prost-types: Common protobuf type definitions - tonic: For gRPC functionality
The documentation is generated from this commit.
| Commit: | 2f2ca50 | |
|---|---|---|
| Author: | Andrew Gazelka | |
| Committer: | Andrew Gazelka | |
[FEAT] add spark-connect protocol
| Commit: | a66e0f2 | |
|---|---|---|
| Author: | Andrew Gazelka | |
| Committer: | Andrew Gazelka | |
base daft connect
| Commit: | 6bf7cfa | |
|---|---|---|
| Author: | Andrew Gazelka | |
split
| Commit: | f535bb4 | |
|---|---|---|
| Author: | Andrew Gazelka | |
| Committer: | Andrew Gazelka | |
fmt/etc
| Commit: | ee2e5d9 | |
|---|---|---|
| Author: | Andrew Gazelka | |
| Committer: | Andrew Gazelka | |
stash