A、T、G、C、または N 以外の文字を含む「ref」列のすべての行を検索するために、spark テーブルにクエリを実行しようとしています。
有効な結果には、これらの文字のみが含まれている必要があり、これらの文字の任意の長さまたは組み合わせを含めることができます。
例えば:
有効 = AA、ATTTGGGGCCCC、C、G、TTG、N など。
無効 = P、.、NULL
次のクエリは、単一のヌクレオチドのみを含む列を返します。
SELECT ref
from test_set
where ref not in ('*A*', '*T*', '*G*', '*C*', '*N*')
ref
1 T
2 C
3 T
4 C
5 T
次のクエリは impala sql では機能しますが、spark では機能せず、かなり醜いです:
SELECT regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(ref, 'A', ''), 'T', ''), 'G', ''), 'C', ''), 'N', '')
from spark_df