【问题标题】:Apache Zeppelin with Java error: ';' expected but 'class' found带有 Java 错误的 Apache Zeppelin:';'预期但找到“类”
【发布时间】:2018-09-21 03:29:58
【问题描述】:

我使用 Apache Spark 的 Java API 从某些来源(如 Cassandra 和 HDFS)加载数据,以便在 Apache Zeppelin 中进行可视化。该代码使用SparkSqlSparkSession,而不是SparkContext,并在IDE 中成功测试。我将完整代码(包含我在 IDE 中运行的所有代码)粘贴到 Zeppelin 笔记本中,并在通过错误error: ';' expected but 'class' found 运行它之后。我认为这个错误是 Scala 错误,我怀疑 Zeppelin 是否支持 Spark Java API?!如果是,我该如何解决这个问题?

Apache Zeppelin 版本:0.7.3 以下是代码:

import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;
import java.util.HashMap;

public class LoadCSV {
    public static void main(String[] args) {
        HashMap<String, String> ops = new HashMap();
        ops.put("table", "grades");
        ops.put("keyspace", "zeppline");

        SparkSession spark = SparkSession
                .builder()
                .master("local[*]")
                .appName("Java Spark SQL basic example")
                .config("spark.cassandra.connection.host", "127.0.0.1")
                .config("spark.cassandra.connection.port", "9042")
                .getOrCreate();

        Dataset<Row> df1 = spark.read()
                .format("csv")
                .option("header", true)
                .option("inferSchema", true)
                .csv("hdfs://localhost:54310/Data/Zeppline/grades.csv");


        Dataset<Row> df2 = spark.read()
                .format("org.apache.spark.sql.cassandra")
                .options(ops)
                .load()
                .select("id","first_name", "last_name", "ssn", "test1", "test2", "test3", "test4", "final", "grade");

        df1.union(df2).createOrReplaceTempView("grades");

    }
}

【问题讨论】:

    标签: java apache-spark apache-zeppelin


    【解决方案1】:

    我怀疑 Zeppelin 是否支持 Spark JAVA API?

    它没有。您可以在 Zeppelin 网站 (https://zeppelin.apache.org/docs/latest/manual/interpreters.html) 上找到可用解释器的完整列表,那里没有 Java 解释器。

    【讨论】:

    • 我可以定义一个支持 Spark Java API 的自定义解释器吗?
    • @SoheilPourbafrani 您也许可以这样做,但实际上您需要 JDK9 或更高版本(及其 REPL),Spark 不支持此功能。无论如何,Java 在设计时都没有考虑到交互性,那何必呢?
    • 你知道我想最终在 YARN 集群中运行 Zeppelin Spark 代码,如果是这样,我需要将 API 更改为 Scala 或 Python,但是?
    猜你喜欢
    • 2017-03-04
    • 2020-07-10
    • 2014-06-01
    • 1970-01-01
    • 2012-07-21
    • 2016-01-18
    • 1970-01-01
    • 1970-01-01
    • 2021-11-05
    相关资源
    最近更新 更多