【问题标题】:Filter non equal values in pyspark, using condition.\ where(array_contains())使用条件过滤 pyspark 中的不相等值。\ where(array_contains())
【发布时间】:2021-04-17 19:25:10
【问题描述】:

我有一个 pyspark 代码

condition_no_hypertension = condition.\
where(array_contains('clinicalStatus.coding.code', 'active')).\
where(array_contains('verificationStatus.coding.code', 'confirmed')).\
where(array_contains('code.coding.code', '38341003')).\
where(condition.onsetDateTime > '1900-01-01').\
withColumn('condition_status', condition['clinicalStatus.coding.code'].getItem(0)).\
withColumn('verification_status', condition['verificationStatus.coding.code'].getItem(0)).\
withColumn('snomed_code', condition['code.coding.code'].getItem(0)).\
withColumn('snomed_name', condition['code.coding.display'].getItem(0)).\
select(\
   (condition['subject.reference'].substr(10, 40).alias('patient_id')),
   'condition_status',\
   'verification_status',\
   'snomed_code', \
   'snomed_name',\
   to_date(condition['onsetDateTime']).alias('first_observation_date'))

如何更改此代码并获取除代码之外的所有内容?

我试过了

where(array_contains('code.coding.code', !='38341003')).\

但它不起作用。

【问题讨论】:

    标签: apache-spark pyspark apache-spark-sql logical-operators


    【解决方案1】:

    你可以使用~(不是):

    where(~array_contains('code.coding.code', '38341003'))
    

    【讨论】:

      猜你喜欢
      • 2017-05-23
      • 1970-01-01
      • 2020-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多