我是第一次使用JSQLPARSER.我有一些动态的SQL文件,我需要从该SQL读取表和列名称.经过大量谷歌搜索后,我尝试使用JSQLPARSER.我试图从文件中读取列名,但由于表达式,我无法读取列名,请问任何人在我出错的地方纠正我的代码.我正在获取CLASSCASTEXCEPTION代码:
public static void main(String[] args) throws JSQLParserException
{
// TODO Auto-generated method stub
String statement="SELECT LOCATION_D.REGION_NAME, LOCATION_D.AREA_NAME, COUNT(DISTINCT INCIDENT_FACT.TICKET_ID) FROM LOCATION_D, INCIDENT_FACT WHERE ( LOCATION_D.LOCATION_SK=INCIDENT_FACT.LOCATION_SK ) GROUP BY LOCATION_D.REGION_NAME, LOCATION_D.AREA_NAME";
CCJSqlParserManager parserManager = new CCJSqlParserManager();
Select select=(Select) parserManager.parse(new StringReader(statement));
PlainSelect plain=(PlainSelect)select.getSelectBody();
List selectitems=plain.getSelectItems();
System.out.println(selectitems.size());
for(int i=0;i<selectitems.size();i++)
{
Expression expression=((SelectExpressionItem) selectitems.get(i)).getExpression();
System.out.println("Expression:-"+expression);
Column col=(Column)expression;
System.out.println(col.getTable()+","+col.getColumnName());
}
}
Run Code Online (Sandbox Code Playgroud) 我希望qemu打开并显示输出后的窗口在运行后自动关闭pintOS
就像我pintos -- run alarm-multiple在tcshshell中运行命令一样,qemu显示该进程开始,然后一些alarm-notifications然后进程结束,但之后qemu窗口将不会关闭
我想在成功完成系统调用后退出窗口.
我试图在spark-shell中的某些数据帧上执行一个简单的SQL查询,查询将一周的间隔添加到某个日期,如下所示:
原始查询:
scala> spark.sql("select Cast(table1.date2 as Date) + interval 1 week from table1").show()
Run Code Online (Sandbox Code Playgroud)
现在我做了一些测试:
scala> spark.sql("select Cast('1999-09-19' as Date) + interval 1 week from table1").show()
Run Code Online (Sandbox Code Playgroud)
我得到了正确的结果
+----------------------------------------------------------------------------+
|CAST(CAST(CAST(1999-09-19 AS DATE) AS TIMESTAMP) + interval 1 weeks AS DATE)|
+----------------------------------------------------------------------------+
| 1999-09-26|
+----------------------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
(只增加7天到19 = 26)
但是当我把这一年改为1997而不是1999年时,结果发生了变化!
scala> spark.sql("select Cast('1997-09-19' as Date) + interval 1 week from table1").show()
+----------------------------------------------------------------------------+
|CAST(CAST(CAST(1997-09-19 AS DATE) AS TIMESTAMP) + interval 1 weeks AS DATE)|
+----------------------------------------------------------------------------+
| 1997-09-25|
+----------------------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
为什么重新改变?不应该26岁不是25岁吗?
那么,这是一个与某些类型的计算损失有关的sparkSQL中的错误还是我遗漏了什么?
当我输入
$ drillbit.sh start
它告诉我这个错误:
ERROR: Java 1.7 or later is required to run Apache Drill.
Run Code Online (Sandbox Code Playgroud)
虽然我有最新版本的java
$ java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
Run Code Online (Sandbox Code Playgroud)
我的$ JAVA_HOME也在.profile中正确设置
什么可能导致这样的问题?
根据此处的文档https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_conn_man/headers#x-forwarded-proto
特使代理将 Header 添加X-Forwarded-Proto到请求中,由于某种原因,标头值为错误的; 它将它设置为http尽管传入请求方案会https导致我的应用程序代码中出现一些问题,因为它取决于此标头的正确值。
这是特使中的错误吗?我可以阻止特使这样做吗?
sql ×2
apache-drill ×1
apache-spark ×1
envoyproxy ×1
istio ×1
java ×1
jsqlparser ×1
kubernetes ×1
linux ×1
pintos ×1
qemu ×1
sql-parser ×1