我们有一个用例,我们需要每天使用Cassandra中的当前数据重新创建一个表.为此我们应该使用drop table或truncate table,这会有效吗?我们不希望备份数据等?
谢谢Ankur
我试图使用Regex解析Java8中的traceroute结果.
我使用下面的正则表达式来识别组.
^(\\d*).*[AS(\\d*)]?\\s+([\\w+\\.]+)\\s+\\(([\\d+\\.]+)\\)[\\s+(\\d+\\.\\d+)\\s+ms]+
Run Code Online (Sandbox Code Playgroud)
我需要解析的一些示例行是:
1 10.33.128.1 (10.33.128.1) 4.452 ms 3.459 ms 3.474 ms
6 * [AS3356] 4.68.72.218 (4.68.72.218) 12.432 ms 11.819 ms
* 4.68.72.218 (4.68.72.218) 12.432 ms 11.819 ms
61.182.180.62 (61.182.180.62) 175.300 ms 203.001 ms
Run Code Online (Sandbox Code Playgroud)
我想提取跳数(如果可用),ASN(如果可用),主机名,IP和时间
但是使用上面的正则表达式,它匹配字符串1,2和4,这是我想要的,但只给我跳,主机和ASN.
我的代码是这样的:
Pattern hop_pattern = Pattern.compile(
"^(\\d*).*[AS(\\d*)]?\\s+([\\w+\\.]+)\\s+\\(([\\d+\\.]+)\\)[\\s+(\\d+\\.\\d+)\\s+ms]+")
Matcher m = hop_pattern.matcher(target);
while(m.find()) {
System.out.println("count: " + m.groupCount());
for(int i = 1; i < m.groupCount() + 1; i++) {
System.out.println(i + "->" + m.group(i));
}
}
Run Code Online (Sandbox Code Playgroud)
我需要解析的一些示例行是:
1 10.33.128.1(10.33.128.1)4.452 ms 3.459 ms 3.474 ms
6*[AS3356] …
我已经在 Spark 用户论坛上发布了这个问题,但没有收到回复,所以在这里再次询问。
我们有一个用例,需要进行笛卡尔连接,但由于某种原因,我们无法让它与数据集 API 一起工作。
我们有两个数据集:
- 一个包含 2 个字符串列的数据集,例如 c1、c2。这是一个小型数据集,约有 100 万条记录。这两列都是 32 个字符的字符串,因此应小于 500 mb。
我们广播这个数据集
- 另一个数据集稍大一些,有约 1000 万条记录
val ds1 = spark.read.format("csv").option("header", "true").load(<s3-location>).select("c1", "c2")
ds1.count
val ds2 = spark.read.format("csv").load(<s3-location>).toDF("c11", "c12", "c13", "c14", "c15", "ts")
ds2.count
ds2.crossJoin(broadcast(ds1)).filter($"c1" <= $"c11" && $"c11" <= $"c2").count
Run Code Online (Sandbox Code Playgroud)
如果我使用 RDD api 实现它,在 ds1 中广播数据,然后在 ds2 中过滤数据,那么它工作得很好。
我已确认广播成功。
2019-02-14 23:11:55 INFO CodeGenerator:54 - 代码在 10.469136 ms 内生成 2019-02-14 23:11:55 INFO TorrentBroadcast:54 - 开始读取广播变量 29 2019-02-14 23:11:55 INFO TorrentBroadcast:54 - 读取广播变量 29 花费了 6 毫秒 …