我在我的红帽64中安装了火花-hadoop env。我还想在spark源代码项目中读写intelliJ idea中的代码。我已经下载了星火源代码,并使一切就绪。但我在IntelliJ idea中编译spark项目时出现了一些错误。以下是一些错误:
/home/xuch/IdeaProjects/spark/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/CatalystQI.scala 错误:(809,34)未找到:值SparkSqlParser case ast if ast.tokenType == SparlSqlParser.TinyintLiteral => 错误:(812,34)未找到:值SparkSqlParser case ast if ast.tokenType == SparlSqlParser.SmallintLiteral => ... ...
但实际上,我没有在整个项目中找到名为SparkSqlParser.scala的文件,也没有找到名为SparkSqlParser的scala类。
然而,我在网上搜索了一些名为SparkSqlParser.scala的文件,但是它们没有属性,比如"TinyintLiteral“、"SmallintLiteral”等等。以下是文件链接:
发布于 2016-10-23 16:02:04
我也遇到了同样的问题。这是我的解决方案:
希望它能帮到你。
发布于 2017-09-25 09:30:31
这里的建议对我都没有用。但是,我注意到生成的代码依赖于Antlr 3.x,而Antlr 4.x是依赖项中的内容(mvn依赖:tree)。我不知道为什么会这样。也许是因为我之前从命令行(?)构建了它。
无论如何,尝试清理您的催化剂子项目,然后重建自动生成的资源。要在IntelliJ中做到这一点,请转到查看->工具窗口-> Maven项目。
然后导航到"Maven Project“选项卡中的”火花项目催化剂“。
导航到清洁->干净:清洁和双击它。导航到插件-> antlr4 -> antlr4 4:antlr4 4并双击它。
现在,您将看到Antlr类的自动生成源是不同的,它们应该编译。YMMV
发布于 2016-03-22 07:06:47
1)首先使用http://spark.apache.org/docs/latest/building-spark.html#building-with-buildmvn中给出的构建指令,从命令行构建星火
2)检查$SPARK_HOME/sql/catalyst/target/generated-sources/antlr3/org/apache/spark/sql/catalyst/parser文件夹。
一些生成的类(如SparkSqlLexer.java )就在那里。
它生成的类的列表是
    SparkSqlLexer.java[enter link description here][1]    
    SparkSqlParser.java
    SparkSqlParser_ExpressionParser.java
    SparkSqlParser_FromClauseParser.java
    SparkSqlParser_IdentifiersParser.java
    SparkSqlParser_KeywordParser.java
    SparkSqlParser_SelectClauseParser.java3)开放模块设置。点击火花催化剂模块。转到右边的Source选项卡。将目标/生成的源作为源文件夹。

https://stackoverflow.com/questions/35617277
复制相似问题