小编nof*_*aki的帖子

在Prolog中没有重复元素的两个列表的交集

我需要编写一个程序来查找两个列表的交集.我不能使用剪切,结果列表中不应该有任何重复的元素.

这是我的代码:

intersection([],_,[]).
intersection([X|Xs],Y,[X|Zs]) :-
    member(X,Y),
    intersection(Xs,Y,Zs).
intersection([_|Xs],Y,Zs) :-
    intersection(Xs,Y,Zs).
Run Code Online (Sandbox Code Playgroud)

当我运行以下查询时,我得到以下答案:

?- intersection([a,b,c,a],[a,v,c],L).
L = [a, c, a] ;
L = [a, c] ;            % <---------- this is only answer I want to get
L = [a, a] ;
L = [a] ;
L = [c, a] ;
L = [c] ;
L = [a] ;
L = [].
Run Code Online (Sandbox Code Playgroud)

我能做什么?我想得到L = [a,c]什么别的......你能帮忙吗?

list prolog duplicates

7
推荐指数
1
解决办法
2320
查看次数

Spark中的分区和分桶有什么区别?

我尝试优化两个 spark 数据帧之间的连接查询,我们称它们为 df1、df2(在公共列“SaleId”上连接)。df1 非常小(5M),所以我在火花集群的节点之间广播它。df2 非常大(200M 行),因此我尝试通过“SaleId”对其进行存储分区/重新分区。

在 Spark 中,按列对数据进行分区和按列对数据进行分桶有什么区别?

例如:

划分:

df2 = df2.repartition(10, "SaleId")
Run Code Online (Sandbox Code Playgroud)

桶:

df2.write.format('parquet').bucketBy(10, 'SaleId').mode("overwrite").saveAsTable('bucketed_table'))
Run Code Online (Sandbox Code Playgroud)

在每一项技术之后,我都将 df2 与 df1 结合使用。

我无法弄清楚使用哪种技术是正确的。谢谢

python bucket data-partitioning apache-spark

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

使用 pyspark 时 PyCharm 中的 DataFrame 视图

我创建了一个 pyspark 数据框,我想在调试代码时在 PyCharm 的 SciView 选项卡中看到它(就像我以前使用 Pandas 时所做的那样)。它说“没什么可显示的”(数据框存在,当我使用 show() 命令时我可以看到它)。

有人知道怎么做,或者在这种情况下 pycharm 和 pyspark 数据框之间可能没有集成?

python pycharm pyspark

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