我有一个scalaspark包,里面有不同项目的目录。每个项目都可以有自己的sparksql查询集,我想将它们组织在每个项目目录的子目录中。例如:
src/
src/project1
src/project1/Project1WithMainMethod.scala
src/project1/resources
src/project1/resources/sql_file_1.sql
src/project1/resources/sql_file_2.sql
src/project2
src/project2/Project2WithMainMethod.scala
src/project2/resources
src/project2/resources/sql_file_1.sql
src/project2/resources/sql_file_2.sql
实际的sql文件名可以是任何内容。我想在scala或java中编写一个方法,以字符串形式返回文件内容,可以将其传递到spark.sql(sqlfile)中用作Dataframe。
例如,给定此方法规范: def getFileAsString(fileName: String): String
如果我从project1withmainmethod.scala调用getfileasstring(“sql\u file\u 1.sql”),它应该从这里返回文件的内容,作为一个字符串:src/project1/resources/sql\u file\u 1.sql
同样,如果我从project2withmainmethod.scala调用getfileasstring(“sql\u file\u 1.sql”),它应该从这里返回文件的内容:src/project2/resources/sql\u file\u 1.sql
或者,如果我指定另一个项目的路径并从project1withmainmethod.scala调用getfileasstring(“project2/resources/sql\u file\u 1.sql”),它应该在这里返回文件的内容:src/project2/resources/sql\u file\u 1.sql
我已经找到了至少5-6种不同的方法来处理相对路径、类路径、资源目录,但它们似乎都不适合我的用例。大多数人建议对整个回购使用一个“资源”目录。
也许我的用例不适合oop或java,但在我看来,对于spark中服务于一组普通客户的数据管道,它似乎工作得很好。如果我能将sql文件正确加载到字符串中。。。似乎很简单,但我真的很难做到这一点有效。
感谢您的帮助!
暂无答案!
目前还没有任何答案,快来回答吧!