【问题标题】:Extract SQL queries from text files从文本文件中提取 SQL 查询
【发布时间】:2021-03-24 14:26:00
【问题描述】:

如何从这个文本文件中提取两个使用 JAVA 的 SQL 查询?

--------------------------------------------------------
--  File created - 01-25-2009   
--------------------------------------------------------
--------------------------------------------------------
--  Table PRODUCT
--------------------------------------------------------

  CREATE TABLE "PRODUCT" 
   (    "PRODUCTID" INTEGER, 
    "TYPE" VARCHAR(255), 
    "NAME" VARCHAR(10), 
    "CODE" VARCHAR(255), 
    "CLIENTS" VARCHAR(255), 
    "LOCATION" VARCHAR(255), 
    "REMAININGARTICLES" VARCHAR(255), 
    "STAFF" VARCHAR(511), 
    "WAREHOUSES" VARCHAR(511), 
    "DOWN" VARCHAR(64), 
    "UP" VARCHAR(56), 
    "EXPIRY" DATE
   ) ;
--------------------------------------------------------
--  Constraints for Table PRODUCT
--------------------------------------------------------

  ALTER TABLE "PRODUCT" MODIFY ("PRODUCTID" NOT NULL ENABLE);

这是我迄今为止尝试使用spark

Dataset<String> sqlQuery=spark.read().textFile("C:/product.sql");

那我试试:

sqlQuery.toString()

但后者没有返回一个字符串,如何以一种简洁的方式实现这一点?

【问题讨论】:

  • 那么它返回的是什么?任何错误或任何其他提示。请提供尽可能多的信息

标签: java apache-spark-sql


【解决方案1】:

sqlQuery 不是你必须首先收集的结果,我不确定是否使用 java,但在 scala 中你会这样使用它:

val arr = spark.read.textFile("C:/product.sql").collect()

然后像这样加入它:

val query = String.join("\n", arr: _*)

在java中会是这样的:

array[] arr = spark.read().textFile("C:/product.sql").collect()

然后像这样加入它:

String query = String.join("\n", arr)

【讨论】:

  • collectAsList 在 JAVA 中返回 List 而不是 Array 会不会做得更好?
  • 这取决于我猜哪个更高效的用例。
  • JAVA 中也不存在 Array (array[] 或 ArrayList ...),但无论如何谢谢!
  • 是的,自从我接触 java 以来已经有好几年了,这就是为什么我给了你等效的 scala,所以你知道出了什么问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-15
  • 2011-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多