代码之家  ›  专栏  ›  技术社区  ›  Joshua Carter

在Python中跨虚拟环境共享数据

  •  0
  • Joshua Carter  · 技术社区  · 11 月前

    我正在尝试使用Pantab将来自几个不同来源的数据整合到Tableau.超文件中。我的消息来源之一是Snowflake。问题是Pantab和Snowflake需要PyArrow的非重叠版本。通过使用虚拟环境,我可以分别为每个环境编写脚本,但这并不能满足我的需求。我需要Snowflake的输出Pandas数据帧(环境#1中的脚本#1)用作Tableau的输入(环境#2中的脚本#2)。

    我总是可以将Script#1导出为Excel文件或CSV,然后导入这些文件,但除非没有其他方法,否则我宁愿不使用这些额外的文件。在创建.ehyper文件之前,会发生很多转换,所以它不适合只在Tableau中进行。

    我目前正在Tableau Data Prep中做这项工作,但每天要花一个多小时来照顾它。

    1 回复  |  直到 11 月前
        1
  •  0
  •   Jason Harrison    11 月前

    尽管看起来很混乱,但在这个初始步骤中写入和读取中间文件要安全得多。这些文件允许您在每个阶段之后检查数据,并可以帮助您捕捉错误,如果所有内容都通过,垃圾到达处理管道的末端,那么错误将更加困难。

    我对你正在使用的工具不太熟悉。他们能读取标准输入并写入标准输出吗?然后,您可以将第一阶段的数据输出管道传输到第二阶段的输入:

    stage_one | stage_two
    

    不过,由于您使用的是python虚拟环境,请使用virtualenvironment命令来运行stage。使用pipenv:

    pipenv run stage_one | pipenv run state_two
    

    或使用virtualenv:

    C:\path\to\venv1\python.exe C:\path\to\stage_1.py | C:\path\to\venv2\python.exe C:\path\to\stage_2.py