Spark SQL:列值只能是a、T、G、C或N的组合
我试图查询spark表,以查找“ref”列中包含非a、T、G、C或N字母的所有行 有效结果应仅包含这些字母,并且可以包含这些字母的任意长度或组合 例如: 有效=AA、ATTTGGGCCCC、C、G、TTG、N等 无效=p,,,空 以下查询仅返回包含单个核苷酸的列:Spark SQL:列值只能是a、T、G、C或N的组合,sql,apache-spark-sql,pyspark-sql,Sql,Apache Spark Sql,Pyspark Sql,我试图查询spark表,以查找“ref”列中包含非a、T、G、C或N字母的所有行 有效结果应仅包含这些字母,并且可以包含这些字母的任意长度或组合 例如: 有效=AA、ATTTGGGCCCC、C、G、TTG、N等 无效=p,,,空 以下查询仅返回包含单个核苷酸的列: 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 以下查
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
如果不想使用regexp_extract,可通过执行以下操作获得相同的结果:
SELECT ref
from test_set
where not (
ref like '*A*' or
ref like '*T*' or
ref like '*C*' or
ref like '*G*' or
ref like '*N*'
)
如果不想使用regexp_extract,可通过执行以下操作获得相同的结果:
SELECT ref
from test_set
where not (
ref like '*A*' or
ref like '*T*' or
ref like '*C*' or
ref like '*G*' or
ref like '*N*'
)
好的。。我想出来了:
SELECT regexp_extract(ref, 'ATGCN', 0)
from test_set
或
好的。。我想出来了:
SELECT regexp_extract(ref, 'ATGCN', 0)
from test_set
或