小编Nic*_*k01的帖子

Java 8过滤器基于布尔值

我希望能够根据传入的布尔值应用过滤器.

public static List<Integer> multiplyNumbers(List<Integer> input, boolean ignoreEven){

    return input.stream()
    .filter(number -> !(number%2==0))
    .map(number -> number*2)
    .collect(Collectors.toList());
}
Run Code Online (Sandbox Code Playgroud)

我想根据ignoreEven标志进行过滤步骤.如果是真的,请忽略偶数.我该怎么做呢?我这样做是为了避免代码重复

java java-8

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

数据帧全外连接中的 OR 条件降低了性能火花/scala

我看到如果我的连接条件涉及 OR 子句,则与使用 AND 子句相比,它需要很长时间。我正在做fullouter join。

我的单元测试没有显示出重大差异,但是当针对大型数据集运行时,它运行速度非常慢

df1.join(df2, expr("id1 = id2 AND amount1 = amount2"), "fullouter").cache()
Run Code Online (Sandbox Code Playgroud)

以下运行很长时间,即速度慢约 10 倍

df1.join(df2, expr("id1 = id2 OR amount1 = amount2"), "fullouter").cache()
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

scala join apache-spark apache-spark-sql

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

使用Java 8将两个列表中的对象与唯一ID合并

class Human {
    Long humanId;
    String name;
    Long age;
}


class SuperHuman {
    Long superHumanId;
    Long humanId;
    String name;
    Long age;
}
Run Code Online (Sandbox Code Playgroud)

我有两个清单.人类名单和superHumans名单.我想从两个中创建一个单独的列表,确保如果一个人是超人,它只会在使用java 8的列表中出现一次.有一个巧妙的方法吗?更新:这些是不同的类,即不扩展另一个.我想最终的名单是超人.如果一个人已经是超人,我们就会忽视那个人类的对象.如果人类不是超人,我们将人类对象转换为超人类对象.理想情况下,我希望按照他们的年龄对它们进行排序,以便获得按日期降序排序的超人列表.

java java-8

2
推荐指数
1
解决办法
5887
查看次数

python字符串格式keyError

尝试执行我的脚本时出现以下错误

 ]""".format(id="123", name="test")
KeyError: '\n    "id"'
Run Code Online (Sandbox Code Playgroud)

这是我的脚本。我只需要格式化一个多行字符串。我尝试在格式部分使用字典,但这也不起作用。

import requests

payload = """[
  {
    "id":{id},
    "name": "{name}"
  }
]""".format(id="123", name="test")

headers = {"Content-Type": "application/json"}
r = requests.post("http://localhost:8080/employee", data=payload, 
headers=headers)
print(r.status_code, r.reason)
Run Code Online (Sandbox Code Playgroud)

python string-formatting

0
推荐指数
2
解决办法
3886
查看次数