小编yak*_*out的帖子

如何使用JSQLPARSE从SQl检索表名和列名

我是第一次使用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)

java sql sql-parser jsqlparser

8
推荐指数
1
解决办法
5622
查看次数

如何在进程结束后自动关闭`qemu`的执行?

我希望qemu打开并显示输出后的窗口在运行后自动关闭pintOS

就像我pintos -- run alarm-multipletcshshell中运行命令一样,qemu显示该进程开始,然后一些alarm-notifications然后进程结束,但之后qemu窗口将不会关闭

我想在成功完成系统调用后退出窗口.

linux operating-system qemu pintos

6
推荐指数
1
解决办法
689
查看次数

SparkSQL中的日期和间隔添加

我试图在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中的错误还是我遗漏了什么?

sql apache-spark apache-spark-sql

4
推荐指数
1
解决办法
5441
查看次数

运行Apache Drill需要Java 1.7或更高版本

当我输入

$ 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中正确设置

什么可能导致这样的问题?

apache-drill

4
推荐指数
1
解决办法
1192
查看次数

有没有办法阻止特使添加特定的标题?

根据此处的文档https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_conn_man/headers#x-forwarded-proto 特使代理将 Header 添加X-Forwarded-Proto到请求中,由于某种原因,标头值为错误的; 它将它设置为http尽管传入请求方案会https导致我的应用程序代码中出现一些问题,因为它取决于此标头的正确值。

这是特使中的错误吗?我可以阻止特使这样做吗?

kubernetes istio envoyproxy

4
推荐指数
1
解决办法
1923
查看次数