小编Nic*_*ick的帖子

来自foreach的短路功能

我和我的同事对以下代码的行为感到有点困惑.

def a: String = {
  None.foreach(return "1")
  return "2"
}

def b: String = {
  None.foreach(x => return "1")
  return "2"
}
Run Code Online (Sandbox Code Playgroud)

正如所料,调用b确实返回"2".但是,调用a返回"1".何时执行return "1"时正在评估a

functional-programming scala

9
推荐指数
1
解决办法
489
查看次数

MySQL UNION LIMIT的性能

我有两个不同的MySQL表,它们都包含时间序列数据(两者都包含'timestamp'列).除了'timestamp'列之外,这两个表除了'client_id'列之外不共享任何常用功能.

table_a
- id
- client_id
- timestamp
- ...

table_b
- id
- client_id
- timestamp
- ...
Run Code Online (Sandbox Code Playgroud)

两个表都在(client_id,timestamp)上建立索引.

我正在尝试将这两个表组合成一个分页的时间序列.要具体,我的意思是说我试图加载N条记录(与M的偏移量)从联盟table_atable_b由有序timestamp.

我尝试用这样的语句做到这一点:

(SELECT 'a', id FROM table_a WHERE client_id=1) UNION (SELECT 'b', id FROM table_b WHERE client_id=1) ORDER BY timestamp LIMIT 100;
Run Code Online (Sandbox Code Playgroud)

不幸的是,结果查询似乎抓住了两个表中的所有匹配行,组合,然后应用LIMIT.

请注意,针对各个表的查询非常快:

SELECT 'a', id FROM table_a WHERE client_id=1 ORDER by timestamp LIMIT 100
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来索引表或编写UNION查询?

mysql

4
推荐指数
1
解决办法
1970
查看次数

将 Sqoop 数据从 HDFS 移动到 Hive

当使用 Sqoop 将一堆大型 MySQL 表导入 HDFS 时,我忘记包含 --hive-import 标志。现在我已经将这些表放在 HDFS 中,并且想知道是否有一种简单的方法将数据加载到 Hive 中(无需自己编写 LOAD DATA 语句)。

我尝试使用 sqoop create-hive-table:

./bin/sqoop create-hive-table --connect jdbc:mysql://xxx:3306/dw --username xxx --password xxx --hive-import --table tweets
Run Code Online (Sandbox Code Playgroud)

虽然这确实创建了正确的配置单元表,但它没有将任何数据导入其中。我有一种感觉,我在这里错过了一些简单的东西......

根据记录,我使用 Elastic MapReduce 和 Sqoop 1.4.1。

hadoop hive hdfs sqoop

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

标签 统计

functional-programming ×1

hadoop ×1

hdfs ×1

hive ×1

mysql ×1

scala ×1

sqoop ×1