forked from aws-samples/aws-glue-samples
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMinimalSparkConnectorTest.scala
37 lines (32 loc) · 1.21 KB
/
MinimalSparkConnectorTest.scala
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/*
* Copyright 2016-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: MIT-0
*/
import com.amazonaws.services.glue.GlueContext
import com.amazonaws.services.glue.util.JsonOptions
import org.apache.log4j.{Level, Logger}
import org.apache.spark.{SparkConf, SparkContext}
object MinimalSparkConnectorTest {
def main(sysArgs: Array[String]) {
val conf = new SparkConf().setAppName("SimpleTest").setMaster("local")
val spark: SparkContext = new SparkContext(conf)
val glueContext: GlueContext = new GlueContext(spark)
val rootLogger = Logger.getRootLogger()
rootLogger.setLevel(Level.ERROR)
val optionsMap = Map(
"className" -> "simple.spark.connector.MinimalSparkConnector",
"secretId" -> "test-demo-minimal-spark-connector"
)
val datasource = glueContext.getSource(
connectionType = "custom.spark",
connectionOptions = JsonOptions(optionsMap),
transformationContext = "datasource")
val dyf = datasource.getDynamicFrame()
dyf.show()
dyf.printSchema()
val customSink = glueContext.getSink(
connectionType = "custom.spark",
connectionOptions = JsonOptions(optionsMap))
customSink.writeDynamicFrame(dyf)
}
}