Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Data] Fix bug where _StatsActor errors with PandasBlock #40481

Merged
merged 1 commit into from
Oct 19, 2023

Conversation

bveeramani
Copy link
Member

@bveeramani bveeramani commented Oct 19, 2023

Why are these changes needed?

tl;dr: StatsActor errors if your dataset contains pandas blocks.

Results from write tasks are stored in pandas blocks.

def fn(blocks: Iterator[Block], ctx) -> Iterator[Block]:
# NOTE: `WriteResult` isn't a valid block type, so we need to wrap it up.
import pandas as pd
block = pd.DataFrame(
{"write_result": [datasource.write(blocks, ctx, **write_args)]}
)
return [block]

The problem is that Ray expects stats to be an int or float:

self.bytes_allocated.set(stats["obj_store_mem_alloc"], tags)

But PandasBlock.size_bytes() returns a NumPy scalar.

return self._table.memory_usage(index=True, deep=True).sum()

This PR fixes the issue by converting the NumPy scalar to an int.

Related issue number

Fixes #40480

Checks

  • I've signed off every commit(by using the -s flag, i.e., git commit -s) in this PR.
  • I've run scripts/format.sh to lint the changes in this PR.
  • I've included any doc changes needed for https://docs.ray.io/en/master/.
    • I've added any new APIs to the API Reference. For example, if I added a
      method in Tune, I've added it in doc/source/tune/api/ under the
      corresponding .rst file.
  • I've made sure the tests are passing. Note that there might be a few flaky tests, see the recent failures at https://flakey-tests.ray.io/
  • Testing Strategy
    • Unit tests
    • Release tests
    • This PR is not tested :(

Signed-off-by: Balaji Veeramani <balaji@anyscale.com>
@Zandew
Copy link
Contributor

Zandew commented Oct 19, 2023

Thanks for the fix!

@bveeramani bveeramani changed the title [Data] Fix stats bug [Data] Fix bug where _StatsActor errors with PandasBlock Oct 19, 2023
@bveeramani bveeramani marked this pull request as ready for review October 19, 2023 19:37
@bveeramani bveeramani merged commit 318fd57 into ray-project:master Oct 19, 2023
32 of 34 checks passed
@bveeramani bveeramani deleted the fix-stats-bug branch October 19, 2023 20:53
jonathan-anyscale pushed a commit to jonathan-anyscale/ray that referenced this pull request Oct 26, 2023
…ject#40481)

StatsActor errors if your dataset contains pandas blocks.

Signed-off-by: Balaji Veeramani <balaji@anyscale.com>
jonathan-anyscale pushed a commit to jonathan-anyscale/ray that referenced this pull request Oct 26, 2023
…ject#40481)

StatsActor errors if your dataset contains pandas blocks.

Signed-off-by: Balaji Veeramani <balaji@anyscale.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Data] TypeError when writing data
3 participants