如何使用不同的语言提交Spark应用程序?

问题描述

您可能会在Zeppelin中知道,我们可以在每个单元格中分别定义解释器,例如pyspark,sql或spark。在当前的脚本中,我混合使用了以下语言和解释器:

%spark2.pyspark

# constant parameters
#
FALSE_TRUE_PAirs_RATIO = 1
NUM_TREES = 200
TRAIN_DATA_RATIO = 0.8
TEST_DATA_RATIO = 1 - TRAIN_DATA_RATIO

%spark2

// read data
//
val basepath = "/kafka-connect/topics/v1/year=2020"
spark.read
 .option("basePath",basepath)
 .parquet(basepath + "/month={07}")
 .createOrReplaceTempView("jul_data")

%spark2.spark

// extract page view data for medscape users in LA 
//
sql("""select * from jul_data
        where countryname='United States' and 
              cityname='New York' and 
              """).createOrReplaceTempView("raw_data")

%spark2.sql

-- just to view data
--
select * from raw_data

如何为此脚本提交Spark应用程序?

解决方法

您可以创建一个组装jar的sbt项目,将逻辑放入其中。使用组装好的jar,您可以执行spark-submit命令。请参见sbt项目的example

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...