Java Spark数据帧筛选(“where”)子句的自定义解释
我有一个在s3上的拼花地板数据集中存储数据的系统。每个数据集包含单个日历日期的数据 我希望能够以简单的sql术语查询单个日期、一组日期或一系列日期。 但是,我不需要获取所有数据集,只需要丢弃其中的大部分数据集,而是希望截取查询解释,并根据与日期相关的子句进行明显的优化 如何定制spark dataframe/dataest查询解释?e、 g.Java Spark数据帧筛选(“where”)子句的自定义解释,java,scala,apache-spark,apache-spark-sql,Java,Scala,Apache Spark,Apache Spark Sql,我有一个在s3上的拼花地板数据集中存储数据的系统。每个数据集包含单个日历日期的数据 我希望能够以简单的sql术语查询单个日期、一组日期或一系列日期。 但是,我不需要获取所有数据集,只需要丢弃其中的大部分数据集,而是希望截取查询解释,并根据与日期相关的子句进行明显的优化 如何定制spark dataframe/dataest查询解释?e、 g.select*from X,其中day='2018-06-16'应仅在/datasets/X/2018-06-16中获取数据集。同样的问题也适用于使用dat
select*from X,其中day='2018-06-16'
应仅在/datasets/X/2018-06-16
中获取数据集。同样的问题也适用于使用dataframe DSL,而不是真正附加到使用SQL
第三方连接器(如Cassandra)必须对查询AST执行相同类型的拦截。如果它太混乱,使用UDF是一个可行的起点吗
我未能找到相关文档,但如果您能够将s3目录从
/datasets/X/2018-06-16
更改为/datasets/X/dt=2018-06-16
,则可能是因为搜索了错误的术语。然后像这样创建数据集
val ds = spark.read.parquet("/datasets/X")
你可以很容易地对此提出质疑
ds.where("dt = '2018-06-16'")
或
ds.where("dt >= '2018-06-10' and dt <= '2018-06-16'")
ds.where(“dt>='2018-06-10'和dt,如果您能够将s3目录从/datasets/X/2018-06-16
更改为/datasets/X/dt=2018-06-16
,然后像这样创建数据集
val ds = spark.read.parquet("/datasets/X")
你可以很容易地对此提出质疑
ds.where("dt = '2018-06-16'")
或
ds.where("dt >= '2018-06-10' and dt <= '2018-06-16'")
ds.where(“dt>='2018-06-10'和dt downvote原因请:)或者如果您不介意为额外功能付费,请为downvote原因:)或者如果您不介意为额外功能付费,很好的答案,谢谢@Kaushal!为便于将来参考,该功能的文档如下:答案很好,谢谢@Kaushal!为便于将来参考,该功能的文档如下所示: