2016-05-24 24 views
2

次のコードスニペットを実行すると、df1は結果を表示しません。私が野生の文字 "*"を "1,2,3、.."に置き換えたとき、df1は値を示します。私は何が欠けていますか?pysparkデータフレームでワイルドカード文字が機能しない

from __future__ import print_function 
import sys 
from pyspark import SparkContext 
from pyspark.sql import SQLContext 
from pyspark.sql import DataFrame 
import pyspark.sql.functions 
. 
. 
. 
df1= df.filter(df.DATE == "*162014").filter(df.TMC == "111N04908")\ 
     .sort(df.EPOCH.asc()) 

答えて

2

==は、それ以上は何もありません。ワイルドカード、正規表現、SQLパターンは使用しません。パターンを使用する場合は、LIKEまたはRLIKEを使用してください。

expr("DATE RLIKE '%162014'") 
expr("DATE LIKE '*162014'") 
1

これは

df1 = df.filter(df.DATE.rlike('*162014')) 
     .filter(df.TMC == "111N04908") 
     .sort(df.EPOCH.asc()) 

仕事場所またはその両方が同じであるフィルタべき

df1 = df.where(df.DATE.rlike('*162014')) 
     .where(df.TMC == "111N04908") 
     .sort(df.EPOCH.asc()) 
関連する問題