2 Replies Latest reply on Sep 6, 2018 11:19 AM by Nathan Mannheimer

    Can't create .hyper files with Python

    thibault.btrmieux.0

      Hi,

       

      I'm having an issue with the TableauSDK when trying to save a pandas DataFrame or convert a file to a hyper format using pandleau or pantab. It is always the same line causing the issue. For example if I try the code at https://github.com/WillAyd/pantab#what-is-it

      I get the following error:

      ~\AppData\Local\Continuum\anaconda3\lib\site-packages\tableausdk\HyperExtract.py in close(self)

        599  """

        600   if self._handle != None:

      --> 601   hyperExtract_lib.TabExtractClose( self._handle )

        602  self._handle = None

        603

       

      OSError: exception: access violation reading 0x0000000000000000

      Maybe it has to do with this other issue I had upon installing pandleau and pantab?

      python-novaclient 2.27.0 has requirement pbr<2.0,>=1.6, but you'll have pbr 4.2.0 which is incompatible.

      What I'm trying to achieve

      I'm trying to fix 2 issues I have with Tableau:

      1) Data Type issues which have cause many bugs in the past and make me loose time in general. I loose them upon exporting in .csv or .xlsx. I've tried working with PostGre and SQlite3 but upon exporting a .twbx for Tableau Reader I have to create an extract for each table used which is really annoying. Also SQlite3 connector was slow as **** and writing PostGre table with Pandas was very slow too.

      2) Some viz with a lot of marks are too slow when I'm working on my dashboards, even with great hardware (Xeon, 64 GB RAM and a Quadro).

       

      Ideally I would export my DataFrames as a .hyper directly and not use any Excel,.csv or SQL databases. I should also be able to tell the data types.

       

      Some additional info

      Python version: 3.6.5 (using Anaconda)

      OS: Windows 10 Pro for Workstations (x64)

      I am not the administrator. However I can enter credentials if I want to install a software for instance.

       

      EDIT: a .hyper file actually does get created but it is empty and unusable

       

       

      If anyone can help witht his issue or propose an interesting alternative I'd be very happy.

       

      Thanks in advance,

       

      Thibault

       

      Ce message a été modifié par : Thibault Bétrémieux

        • 1. Re: Can't create .hyper files with Python
          thibault.btrmieux.0

          Hi,

           

          I figured out the code snippet given by pantab doesn't work. I also had issues with pantab. But I found out pandleau is working!

           

          However I can't overwrite extracts without closing Tableau. But I also found out a way to kill the process, then I can overwrite and Tableau restarts the process when I press refresh on the Database. Not a clean method and probably might encounter a bug, we'll see after long period of testing. So far so good.

           

          Here's the code to do that:

          import psutil

           

           

          PROC_NAME = "hyperd.exe"

           

           

          for proc in psutil.process_iter():

              # check whether the process to kill name matches

              if proc.name() == PROC_NAME:

                  proc.kill()

          Cheers,

           

          Thibault

          • 2. Re: Can't create .hyper files with Python
            Nathan Mannheimer

            Thanks for the follow up! This is good advice and you are correct that once the extract is created and the process is open, it cannot be over-written.

             

            Just for clarity, the packages your mention pantab and pandleau, while very useful, are created by 3rd party users and are not officially supported Tableau products.

            1 of 1 people found this helpful