问题描述
您可能会在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。