[SCALA] SPARK에서 왼쪽 및 오른쪽 키워드를 사용하는 방법 SQL
SCALASPARK에서 왼쪽 및 오른쪽 키워드를 사용하는 방법 SQL
나는 SQL을 촉발하는 새로운 오전
MS SQL에서, 우리는 ( 'D', 'A')를 한 다른 0 LEFT 키워드, LEFT (COLUMNNAME 1)이있다.
스파크 SQL에서 동일하게 구현하는 방법. 친절하게 안내 나
해결법
-
==============================
1.당신은 왼쪽에서 취할 긍정적 인 POS와 하위 문자열 기능을 사용할 수 있습니다 :
당신은 왼쪽에서 취할 긍정적 인 POS와 하위 문자열 기능을 사용할 수 있습니다 :
import org.apache.spark.sql.functions.substring substring(column, 0, 1)
음의 POS이 (가) 오른쪽에서 촬영합니다 :
substring(column, -1, 1)
그래서 스칼라에서 당신은 정의 할 수 있습니다
import org.apache.spark.sql.Column import org.apache.spark.sql.functions.substring def left(col: Column, n: Int) = { assert(n >= 0) substring(col, 0, n) } def right(col: Column, n: Int) = { assert(n >= 0) substring(col, -n, n) } val df = Seq("foobar").toDF("str") df.select( Seq(left _, right _).flatMap(f => (1 to 3).map(i => f($"str", i))): _* ).show
+--------------------+--------------------+--------------------+---------------------+---------------------+---------------------+ |substring(str, 0, 1)|substring(str, 0, 2)|substring(str, 0, 3)|substring(str, -1, 1)|substring(str, -2, 2)|substring(str, -3, 3)| +--------------------+--------------------+--------------------+---------------------+---------------------+---------------------+ | f| fo| foo| r| ar| bar| +--------------------+--------------------+--------------------+---------------------+---------------------+---------------------+
마찬가지로 파이썬에서 :
from pyspark.sql.functions import substring from pyspark.sql.column import Column def left(col, n): assert isinstance(col, (Column, str)) assert isinstance(n, int) and n >= 0 return substring(col, 0, n) def right(col, n): assert isinstance(col, (Column, str)) assert isinstance(n, int) and n >= 0 return substring(col, -n, n)
-
==============================
2.
import org.apache.spark.sql.functions._
대신 LEFT 함수의 사용 문자열 (열, 0, 1).
어디에
예 : LEFT 기능을 고려 :
LEFT(upper(SKU),2)
SparkSQL 문을 대응하는 것입니다 :
substring(upper(SKU),1,2)
-
==============================
3.user6910411의 대답에 따라 구축하기 위해, 당신은 또한 당신의 문자 비교의 결과로 새 열을 구축 한 후 ISIN 사용할 수 있습니다.
user6910411의 대답에 따라 구축하기 위해, 당신은 또한 당신의 문자 비교의 결과로 새 열을 구축 한 후 ISIN 사용할 수 있습니다.
최종 전체 코드는 다음과 같을 것
import org.apache.spark.sql.functions._ df.select(substring($"Columnname", 0, 1) as "ch") .withColumn("result", when($"ch".isin("D", "A"), 1).otherwise(0))
from https://stackoverflow.com/questions/40136922/how-to-use-left-and-right-keyword-in-spark-sql by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 아파치 스파크에서 여러 파일이 포함 된 우편을 읽는 방법 (0) | 2019.11.24 |
---|---|
[SCALA] 어떻게 아파치 스파크에서 RowMatrix의 역을 계산하기? (0) | 2019.11.24 |
[SCALA] 타입에서 TypeTag을 얻기? (0) | 2019.11.24 |
[SCALA] 스칼라의 일반 형식 유추 (0) | 2019.11.24 |
[SCALA] 스칼라에서 어떻게 자바에서 정의 된 클래스의 동반자 객체를 정의 할 수 있습니다? (0) | 2019.11.24 |