我需要编写一个程序来查找两个列表的交集.我不能使用剪切,结果列表中不应该有任何重复的元素.
这是我的代码:
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]什么别的......你能帮忙吗?
我尝试优化两个 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 结合使用。
我无法弄清楚使用哪种技术是正确的。谢谢
我创建了一个 pyspark 数据框,我想在调试代码时在 PyCharm 的 SciView 选项卡中看到它(就像我以前使用 Pandas 时所做的那样)。它说“没什么可显示的”(数据框存在,当我使用 show() 命令时我可以看到它)。
有人知道怎么做,或者在这种情况下 pycharm 和 pyspark 数据框之间可能没有集成?