7
aşağıdaki deyimi gibi hedefe ulaşmak için SQL deyimi yazabilirim nasılSparkSQL'de benzer durum nasıl uygulanır?
SELECT * FROM table t WHERE t.a LIKE '%'||t.b||'%';
teşekkür ederiz.
aşağıdaki deyimi gibi hedefe ulaşmak için SQL deyimi yazabilirim nasılSparkSQL'de benzer durum nasıl uygulanır?
SELECT * FROM table t WHERE t.a LIKE '%'||t.b||'%';
teşekkür ederiz.
spark.sql.Column
like
yöntem sağlar ama şimdi gibi dize değişmezleri ile çalışır (1.6.0/2.0.0 Spark).
import org.apache.spark.sql.hive.HiveContext
val sqlContext = new HiveContext(sc) // Make sure you use HiveContext
import sqlContext.implicits._ // Optional, just to be able to use toDF
val df = Seq(("foo", "bar"), ("foobar", "foo"), ("foobar", "bar")).toDF("a", "b")
df.registerTempTable("df")
sqlContext.sql("SELECT * FROM df WHERE a LIKE CONCAT('%', b, '%')")
// +------+---+
// | a| b|
// +------+---+
// |foobar|foo|
// |foobar|bar|
// +------+---+
veya expr
/selectExpr
:
df.selectExpr("a like CONCAT('%', b, '%')")
Spark 1.5 yılında HiveContext
gerektirecektir Hala ham SQL kullanabilirsiniz. Herhangi bir nedenle Hive bağlamı bir seçenek değilse, özel bir udf
: