Lyr*_*han 6 scala intellij-idea apache-spark apache-spark-sql
我在我的Red Hat 64中安装了spark-hadoop env.我还想在intelliJ idea中读取和编写spark源代码项目中的代码.我已经下载了火花源代码并准备好了一切.但是在IntelliJ构思中编译spark项目时我遇到了一些错误.这是错误:
/home/xuch/IdeaProjects/spark/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/CatalystQI.scala
错误:(809,34)未找到:如果ast.tokenType == SparlSqlParser.TinyintLiteral =>值SparkSqlParser case ast
错误:(812,34)未找到:如果ast.tokenType == SparlSqlParser.SmallintLiteral =>值SparkSqlParser的情况
......
但实际上我没有在整个项目中找到名为SparkSqlParser.scala的文件,也没有找到名为SparkSqlParser的scala类.
但是,我在网上搜索了一些名为SparkSqlParser.scala的文件,但它们没有"TinyintLiteral","SmallintLiteral"等属性.以下是文件链接:
Wen*_*ang 10
我遇到了同样的问题.这是我的解决方案:
希望它可以帮到你.
小智 5
这里的任何建议都不适合我。但是,我注意到生成的代码依赖于 Antlr 3.x,而 Antlr 4.x 是依赖项 (mvndependecy:tree) 中的内容。我不知道为什么会这样。也许是因为我之前是从命令行 (?) 构建的。
无论如何,尝试清理您的 Catalyst 子项目,然后重建自动生成的源。要在 IntelliJ 中执行此操作,请转到 View -> Tools Window -> Maven Projects。
然后导航到“Maven Project”选项卡中的“Spark Project Catalyst”。
导航到 clean -> clean:clean 并双击它。导航到 Plugins -> antlr4 -> antlr4:antlr4 并双击它。
现在,您将看到 Antlr 类的自动生成源不同,它们应该可以编译。天啊。
当我将我的 fork 更新到最新的 master 时,我也遇到了类似的问题。不幸的是,无法从 IDEA 找到使其工作的方法。我所做的是从命令行编译项目。它生成了所需的 antlr 类。然后我添加了 generated-source target/ generated-source/antlr 作为源目录。之后我可以从 Idea 运行测试。理想情况下,Idea 生成源应该已经生成了代码。需要更多检查为什么没有。可能是因为我配置了maven3.3.3。
| 归档时间: |
|
| 查看次数: |
1854 次 |
| 最近记录: |