小编mra*_*ade的帖子

如何防止在上游数据集上使用哈希分区对 groupby.applyInPandas 进行排序?

groupby在我的主要转换中,我通过执行 a然后applyInPandas在 Foundry 中运行算法。构建需要很长时间,一种想法是使用哈希分区/分桶来组织文件以防止随机读取和排序。

对于 mcve,我有以下数据集:

def example_df():
    return spark.createDataFrame(
    [("1","2", 1.0), ("1","3", 2.0), ("2","4", 3.0), ("2","5", 5.0), ("2","2", 10.0)],
    ("id_1","id_2", "v")) 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我想要应用的变换是:

def df1(example_df):
    def subtract_mean(pdf):
        v = pdf.v
        return pdf.assign(v=v - v.mean())

    return example_df.groupby("id_1","id_2").applyInPandas(subtract_mean, schema="id_1 string, id_2 string, v double")
Run Code Online (Sandbox Code Playgroud)

当我查看没有分区的原始查询计划时,它看起来如下所示:

在此输入图像描述

物理计划:

Execute FoundrySaveDatasetCommand `ri.foundry.main.transaction.00000059-eb1b-61f4-bdb8-a030ac6baf0a@master`.`ri.foundry.main.dataset.eb664037-fcae-4ce2-b92b-bd103cd504b3`, ErrorIfExists, [id_1, id_2, v], ComputedStatsServiceV2Blocking{_endpointChannelFactory=DialogueChannel@3127a629{channelName=dialogue-nonreloading-ComputedStatsServiceV2Blocking, delegate=com.palantir.dialogue.core.DialogueChannel$Builder$$Lambda$713/0x0000000800807c40@70f51090}, runtime=com.palantir.conjure.java.dialogue.serde.DefaultConjureRuntime@6c67a62a}, com.palantir.foundry.spark.catalog.caching.CachingSchemaService@7d881feb, com.palantir.foundry.spark.catalog.caching.CachingMetadataService@57a1ef9e, com.palantir.foundry.spark.catalog.FoundrySparkResolver@4d38f6f5, com.palantir.foundry.spark.auth.DefaultFoundrySparkAuthSupplier@21103ab4
+- AdaptiveSparkPlan isFinalPlan=true
   +- == Final Plan ==
      *(3) BasicStats `ri.foundry.main.transaction.00000059-eb1b-61f4-bdb8-a030ac6baf0a@master`.`ri.foundry.main.dataset.eb664037-fcae-4ce2-b92b-bd103cd504b3`
      +- FlatMapGroupsInPandas [id_1#487, id_2#488], subtract_mean(id_1#487, id_2#488, v#489), [id_1#497, …
Run Code Online (Sandbox Code Playgroud)

partitioning apache-spark pyspark palantir-foundry foundry-code-repositories

5
推荐指数
0
解决办法
233
查看次数

对具有透明背景的小图像感兴趣的区域

我想从给定蒙版的图像中提取感兴趣的区域 (ROI),并将其保存在一个调整为 ROI 大小且具有透明背景的新文件中。

例如给定这张图片:
在此处输入图片说明
我想得到这个:
在此处输入图片说明

这里的解决方案NumPy/OpenCV 2: 如何裁剪非矩形区域?提供全尺寸的输出图像。我怎样才能让它输出 ROI 的矩形大小?

我可以按位and图像和蒙版,但我真的很困惑调整图像大小并将其另存为透明 png 的好方法。

c++ python opencv image image-processing

3
推荐指数
1
解决办法
2876
查看次数