Похоже, ваш SQLTransform работает. Пожалуйста, найдите код, как показано ниже.
object SparkHiveExample extends App {
val spark = SparkSession
.builder()
.master("local")
.appName("Spark Hive Example")
.getOrCreate()
import spark.implicits._
//Prepare Test Data
val df = Seq("hello, how are you?\uD83D\uDE0A\uD83D\uDE0A\uD83D\uDE0A")
.toDF("text")
df.show(false)
+-------------------------+
|text |
+-------------------------+
|hello, how are you????|
+-------------------------+
df.createOrReplaceTempView("__THIS__")
val finalDf = spark.sql("select LENGTH(regexp_replace(text,'[^\\\\uD83C-\\\\uDBFF\\\\uDC00-\\\\uDFFF]+', '')) as count_emoji from __THIS__")
finalDf.show(false)
+-----------+
|count_emoji|
+-----------+
|3 |
+-----------+
}
Если вы хотите прочитать данные из таблицы Hive, то создайте экземпляр SparkSession с HiveSupport и настройкой Hive, поместив hive-site.xml, core-site.xml (для настройки безопасности) и hdfs. -site.xml (для конфигурации HDFS) в файле conf /.
// warehouseLocation points to the default location for managed databases and tables
val warehouseLocation = new File("spark-warehouse").getAbsolutePath
val spark = SparkSession
.builder()
.appName("Spark Hive Example")
.config("spark.sql.warehouse.dir", warehouseLocation)
.enableHiveSupport()
.getOrCreate()