【发布时间】:2021-12-22 19:22:41
【问题描述】:
我在数据库中有一个表。有一列“id”,每个 id 有多行。 我想随机选择 10 个 id,然后用这些 id 加载所有行。 以下是有效的,并给了我一个包含 10 个随机 ID 的表格。没关系。
distinct_ids = spark.sql(f""" (SELECT DISTINCT id FROM {database_name}.{orig_table_cl_name} ORDER BY RAND() LIMIT 10)
但现在我不知道如何与原始表进行内部连接以获取包含正确 ID 的所有数据...... 我试过了:
distinct_ids = spark.sql(
f""" (SELECT DISTINCT vehicle_id
FROM {database_name}.{orig_table_name}
ORDER BY RAND() LIMIT 10)
AS table
INNER JOIN table
ON {database_name}.{orig_table_name}.id = table.id""")
给我以下错误:
ParseException:
mismatched input 'AS' expecting {<EOF>, ';'}(line 1, pos 99)
== SQL ==
(SELECT DISTINCT vehicle_id FROM pnds12v_dev_core.t_cycle_log_car_v2_0 ORDER BY RAND() LIMIT 10) AS table
我尝试了一堆其他的参数顺序,但我想我错过了对其工作原理的一般理解......因为我认为使用 spark.sql 时没有分号,所以错误消息没有给我任何提示.
有人可以向我解释如何进行这样的查询吗?
【问题讨论】:
标签: sql apache-spark