Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spark数据帧筛选(“where”)子句的自定义解释_Java_Scala_Apache Spark_Apache Spark Sql - Fatal编程技术网

Java Spark数据帧筛选(“where”)子句的自定义解释

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

我有一个在s3上的拼花地板数据集中存储数据的系统。每个数据集包含单个日历日期的数据

我希望能够以简单的sql术语查询单个日期、一组日期或一系列日期。 但是,我不需要获取所有数据集,只需要丢弃其中的大部分数据集,而是希望截取查询解释,并根据与日期相关的子句进行明显的优化

如何定制spark dataframe/dataest查询解释?e、 g.
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!为便于将来参考,该功能的文档如下所示: