我正在使用spark-cassandra-connector.Need需要从oracle表中获取数据。 我有“ fiscal_year”和“ date_of_creation”列。 目前我已设置
.option("lowerBound", 2000);
.option("upperBound",2020);
.option("partitionColumn", "fiscal_year");
//这有效,但是它导致数据中的大量偏斜。结果火花工作了几个小时。
因此,希望将“ date_of_creation”列用作以下分区键
.option("lowerBound", "31-MAR-02");
.option("upperBound", "01-MAY-19");
.option("partitionColumn", "date_of_creation");
但是它给出了一个错误,例如“ ORA-00932:数据类型不一致:预期的DATE得到了NUMBER”
这是怎么了? 是否有可能像这样设置多列
option("partitionColumn", ["date_of_creation" ,"fiscal_year"]);
对于oracle表中的某些记录,如果“ fiscal_year”为null,在这种情况下如何编写自定义分区程序?
答案 0 :(得分:1)
“上下限”必须是数字,并且必须是相应的分区列。就这么简单,而不是DATE Type或String等效项。当然,您可以使用等价的日期。
看到一个很好的帖子,而不是我:https://medium.com/@radek.strnad/tips-for-using-jdbc-in-apache-spark-sql-396ea7b2e3d3