小编Mar*_*rek的帖子

Github Actions:如何在由 build-push-action 构建的 docker 镜像中运行容器化测试,而不会使执行时间加倍

我正在Github Actions 中使用build-push-action (带有 buildx)来构建 Docker 映像并将其推送到 AWS ECR 注册表。在推送映像(不幸的是,它有几个 GB)之前,我想使用该映像来运行容器化的 Python 测试。

build-push-action有关于这个确切目标的文档- 他们的示例建议构建镜像,将其加载到 Docker,使用docker run ...然后推送。然而,虽然构建镜像(从下载的缓存)需要 7 分钟,但将其加载到 Docker 还需要 7 分钟——因此 CI 管道的时间增加了一倍。文档中的示例:


      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v1
      - name: Build and export to Docker
        uses: docker/build-push-action@v2
        with:
          context: .
          load: true
          tags: ${{ env.TEST_TAG }}
      - name: Test
        run: |
          docker run --rm ${{ env.TEST_TAG }}
      - name: Build and push
        uses: docker/build-push-action@v2
        with: …
Run Code Online (Sandbox Code Playgroud)

docker amazon-ecr github-actions

8
推荐指数
1
解决办法
2483
查看次数

如何在不读取内容的情况下获取Delta表的模式?

我有一个包含数百万行和多种类型的列的增量表,包括。嵌套结构。我想在运行时创建增量表的空 DataFrame 克隆- 即相同的架构,没有行。

我可以在不读取表的任何内容的情况下读取架构(以便我可以根据架构创建一个空的 DataFrame)吗?我认为这是可能的,因为存在增量事务日志并且增量需要快速访问表模式本身

我尝试过的:

  • df.schema- 增量表加载后立即访问schema也需要几分钟。
  • limit(0)-limit(0)加载后立即调用仍然需要几分钟。
  • limit(0).cache()-limit有时会在计划中移动,所以我也尝试添加cache“固定其位置”。

还有其他选择吗?仅访问事务日志 JSON 并从最新事务中读取架构是否正确?(鉴于我们

上下文:我想在我们的 CI 中添加一个步骤,在实际使用数据运行之前检查代码和围绕模式的各种假设。

pyspark databricks delta-lake

6
推荐指数
1
解决办法
1万
查看次数

Python - stdin - 如何识别输入的来源?

我正在寻找一种方法来确定stdin输入是否通过管道来自另一个应用程序。

假设我有一个程序,它要么接受来自管道 stdin 的输入数据(当您从另一个应用程序 - grep、tail 等管道输入数据时),要么使用默认数据文件。我不希望用户在出现提示时手动填写数据,因为没有管道标准输入。

我的简单代码示例如下所示:

from sys import stdin

for line in stdin:
    print line
Run Code Online (Sandbox Code Playgroud)

当我使用以下命令运行脚本时:

echo "data" | python example.py
Run Code Online (Sandbox Code Playgroud)

我明白了

data
Run Code Online (Sandbox Code Playgroud)

脚本结束。

如果我按以下方式运行脚本,

python example.py
Run Code Online (Sandbox Code Playgroud)

它提示用户填写输入并等待。

因此,我正在寻找类似以下内容的内容,以避免在没有数据通过管道传输时出现提示。

from sys import stdin

if is_stdin_piped():
    for line in stdin:
        print line
else:
    print "default"
Run Code Online (Sandbox Code Playgroud)

这样的事情可能吗?谢谢

python stdin

5
推荐指数
1
解决办法
549
查看次数

散景-获取有关已选择点的信息

我有几个要点绘制成散点图并显示在Web浏览器窗口中(使用Bokeh)。

对于选择,我使用PolySelectTool或BoxSelectTool。

我想做两件事:1)获取有关已选择点的信息,以便计算一些其他信息。2)由于点代表URL,所以我希望图表在每次单击一个点(代表URL)时打开一个新的浏览器选项卡并加载特定的URL。

我认为代码并不重要。但是为了使我的问题更完整,这里是...

Y = my_data
urls = get_urls(my_data)

TOOLS="pan,wheel_zoom,reset,hover,poly_select,box_select"
p = figure(title = "My chart", tools=TOOLS)
p.xaxis.axis_label = 'X'
p.yaxis.axis_label = 'Y'

source = ColumnDataSource(
    data=dict(
        xvals=list(Y[:,0]),
        yvals=list(Y[:,1]),
        url=urls
    )
)
p.scatter("xvals", "yvals",source=source,fill_alpha=0.2, size=5)
hover = p.select(dict(type=HoverTool))
hover.snap_to_data = False
hover.tooltips = OrderedDict([
    ("(x,y)", "($x, $y)"),
    ("url", "@url"),
])

select_tool = p.select(dict(type=BoxSelectTool))

# 
# I guess perhaps something should be done with select_tool
#

show(p)
Run Code Online (Sandbox Code Playgroud)

python charts interactive bokeh

4
推荐指数
1
解决办法
5411
查看次数