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

unhashable type: 'dict' #7495

Open
padraigoleary opened this issue May 13, 2019 · 6 comments

Comments

Projects
None yet
3 participants
@padraigoleary
Copy link

commented May 13, 2019

A clear and concise description of what the bug is.

Expected results

Display a simple table of my data. (Ultimately I want to plot a time series line graph of values).

I have the following csv

datetime,level
2019-04-07 17:30:00,0.401
2019-04-07 17:45:00,0.402
2019-04-07 18:00:00,0.402
2019-04-07 18:15:00,0.402
2019-04-07 18:30:00,0.402

When you display the data or a line graph, you get an unhashable type 'dict' for numeric column.

Actual results

unhashable type: 'dict'

Traceback (most recent call last):
  File "/home/superset/superset/views/base.py", line 118, in wraps
    return f(self, *args, **kwargs)
  File "/home/superset/superset/utils/decorators.py", line 63, in wrapper
    check_perms(*args, **kwargs)
  File "/home/superset/superset/views/core.py", line 122, in check_datasource_perms
    force=False,
  File "/home/superset/superset/views/utils.py", line 114, in get_viz
    force=force,
  File "/home/superset/superset/viz.py", line 112, in __init__
    self.process_metrics()
  File "/home/superset/superset/viz.py", line 126, in process_metrics
    self.metric_dict[label] = o
TypeError: unhashable type: 'dict'

Screenshots

Screenshot 2019-05-12 at 20 48 34

How to reproduce the bug

  1. Upload a CSV containing data as sample above.
  2. Run query on the table using parameters as in screenshot.
  3. See error

Environment

Built using these commands

git clone https://github.com/apache/incubator-superset/
cd incubator-superset/contrib/docker
# prefix with SUPERSET_LOAD_EXAMPLES=yes to load examples:
docker-compose run --rm superset ./docker-init.sh
# you can run this command everytime you need to start superset now:
docker-compose up

Checklist

Make sure these boxes are checked before submitting your issue - thank you!

  • [ x] I have checked the superset logs for python stacktraces and included it here as text if there are any.
  • [ x] I have reproduced the issue with at least the latest released version of superset.
  • [ x] I have checked the issue tracker for the same issue and I haven't found one similar.
@issue-label-bot

This comment has been minimized.

Copy link

commented May 13, 2019

Issue-Label Bot is automatically applying the label #bug to this issue, with a confidence of 0.59. Please mark this comment with 👍 or 👎 to give our bot feedback!

Links: app homepage, dashboard and code for this bot.

@issue-label-bot issue-label-bot bot added the #bug label May 13, 2019

@davidhassan

This comment has been minimized.

Copy link
Contributor

commented May 13, 2019

You have to apply an aggregation to your metric (levels).

@padraigoleary

This comment has been minimized.

Copy link
Author

commented May 14, 2019

Thanks for reply @davidhassan. But why can I not visualise via a line graph datetime on X axis and levels (metric) on Y axis?

@davidhassan

This comment has been minimized.

Copy link
Contributor

commented May 14, 2019

You can do that but you need to add an aggregation to your data even if it is not required in the metrics sections.

So that the metrics section looks like SUM(levels) or whatever aggregation you chose. Then you need to set the time grain to 5 minutes.

@elukey

This comment has been minimized.

Copy link
Contributor

commented May 15, 2019

It would be great to have a more meaningful error message though, this one is really cryptic :)

@davidhassan

This comment has been minimized.

Copy link
Contributor

commented May 15, 2019

@elukey This is very true.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.