Comments (5)
Hi Rachel,
Thanks for reaching out! Last time I checked on this, I had some trouble trying to manipulate the .hyper or .tde files as it looked like writing functions in the tableausdk package were encrypted. Originally I had wanted to push out another version where you could convert a .tde or .hyper to a pandas dataframe, or otherwise manipulate the data between sources, but I had some trouble trying to do this. I agree though, it would be a cool functionality to add - I'll try to do more research on the issue. Thanks!
Best,
Ben
from pandleau.
Hey @bwiley1 ,
I think the issue is around lines 139-154 in pandleau.py. This should be able to be abstracted and instead of creating a table definition from scratch, check to see if 'Extract' already exists, and if so, just set table_def to the definition that already exists.
At least in the 'old' SDK, tableauSDKSample.py has an example of this -- the procedure createOrOpenExtract() checks first if the table exists, otherwise it creates it. Then, the procedure populateExtract() gets the table schema using table.getTableDefinition()
However, I don't know how nicely this will play with the "add index" function of pandleau. TDEs (and I'm assuming hypers as well) aren't really meant to be read by anything but Tableau, and the SDK doesn't have any public reading functions that I'm aware of.
I should have some time when I get home to clone and play around and see if it's something that can be adjusted. I am making an assumption that these functions exist in both SDK and SDK2, but I guess I'll find out!
from pandleau.
That's very true... I think using createOrOpenExtract would also solve writing multiple tables to a single extract (another issue on this list). That would be cool if you figure it out! Let me know if there's anything I can help out with!
from pandleau.
@bwiley1 Check it out here: https://github.com/harrison-h/pandleau/tree/load-existing-table
Was pretty straightforward. I've only tested it on the legacy SDK (as it's what I have for my use case) but it works exactly as intended. The use case I have is that I'm transforming very large datasets in a way to feed them into Tableau, so I end up having to pass it along to the extract in chunks.
Additionally, I think you're right about it allowing you to write multiple tables! As long as that argument is passed, it should work just fine. Also not tested though.
As full disclosure, I'm not in CS or anything, so feel free to point out anything in my code that could be better or improved upon. If it looks all good to you as well I can open a pull request.
from pandleau.
I think this looks fine! If you want to open a pull request I'll approve it, thanks!
from pandleau.
Related Issues (20)
- Not recognizing installed tableausdk HOT 4
- Some values are causing fatal errors HOT 2
- Incorrect parsing HOT 1
- unicode column types in pandas 0.23.0 HOT 1
- Error on Windows Install HOT 3
- parsing 13m x 89 table is quite slow. Any suggestion for improvements? HOT 8
- Bizzare error running pandleau on RHEL7 HOT 1
- Bug with large strings HOT 1
- Support for multi-table extracts? HOT 6
- Publish to pypi without tableausdk dependency? HOT 4
- Windows OSError when export large table to hyper
- set_spatial question HOT 2
- deprecation warning from pandas HOT 1
- Append rows when you refresh the .hyper(or .tde)
- ModuleNotFoundError not defined in python2 HOT 3
- Updates to operate with pandas 1.0.0
- Hyper API works much faster.
- No module named 'tableausdk'
- TableauException (303): extract path must have .tde extension HOT 3
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 pandleau.