PySpark IS NOT IN điều kiện được sử dụng để loại trừ nhiều giá trị đã xác định trong where() hoặc chức năng filter() tình trạng. Nói cách khác, nó được sử dụng để kiểm tra / lọc nếu DataFrame các giá trị không tồn tại / chứa trong danh sách các giá trị. isin() là một hàm của lớp Cột trả về boolean giá trị True nếu giá trị của biểu thức được chứa bởi các giá trị được đánh giá của các đối số.

NOT IN điều kiện (đôi khi được gọi là Toán tử NOT) được sử dụng để phủ định một điều kiện của kết quả isin ().

1. Ví dụ nhanh về việc sử dụng KHÔNG VÀO

Sau đây là các ví dụ nhanh về cách sử dụng NOT IN toán tử để lọc các hàng từ DataFrame.

 # PySpark not isin()
listValues = ["Java","Scala"]
df.filter(~df.languages.isin(listValues)).show()

from pyspark.sql.functions import col
df.filter(~col("languages").isin(listValues)).show()

# Using NOT IN operator
df.filter("languages in ('Java','Scala')" ).show()

# PySpark SQL NOT IN
df.createOrReplaceTempView("TAB")
spark.sql("SELECT * FROM TAB WHERE " +
    "language NOT IN ('Java','Scala')").show()

Cú pháp

2. trong tổng số KHÔNG VÀO

Sau đây là cú pháp của cách sử dụng NOT IN

  
# Syntax of NOT isin()
~ Column.isin(*cols)
 

Nơi đây, *cols là cú pháp python để mở rộng một mảng để kết xuất các phần tử của nó vào các tham số hàm tại một thời điểm theo thứ tự. Hãy tạo DataFrame và chạy các ví dụ trên.

 #Import
from pyspark.sql import SparkSession

# Create SparkSession
spark = SparkSession.builder.master("local[1]") 
    .appName("SignalFix.com").getOrCreate()

# Create DataFrame    
data = [("James","Java"),("Michael","Spark"),
        ("Robert","Python")]
columns = ["name","languages"]
df = spark.createDataFrame(data,columns)
df.show()

3. PySpark KHÔNG VÀO Thí dụ

PySpark DataFrame API không có chức năng notin() để kiểm tra giá trị không tồn tại trong danh sách các giá trị, tuy nhiên, bạn có thể sử dụng hàm NOT operator(~) kết hợp với isin() để phủ định kết quả. Hãy xem với một ví dụ, ví dụ bên dưới lọc các hàng ngôn ngữ không có trong ‘Java‘&’Scala‘.

 # PySpark NOT isin()
listValues = ["Java","Scala"]
df.filter(~df.languages.isin(listValues)).show()

from pyspark.sql.functions import col
df.filter(~col("languages").isin(listValues)).show()

# Using == operator
df.filter(dataframe.column.isin(listValues) == False)

Sản lượng thấp hơn sản lượng.

pyspark không ở

4. Sử dụng KHÔNG VÀO Nhà điều hành với Biểu thức

Hãy xem cách sử dụng NOT IN nhà điều hành trong PySpark điều kiện biểu hiện.

  
# Using NOT IN operator
df.filter("languages NOT IN ('Java','Scala')" ).show()

5. PySpark SQL KHÔNG VÀO Nhà điều hành

Trong PySpark SQL bạn có thể dùng NOT IN toán tử để kiểm tra các giá trị không tồn tại trong danh sách các giá trị, nó thường được sử dụng với WHERE mệnh đề. Để sử dụng SQL, hãy đảm bảo rằng bạn tạo một dạng xem tạm thời bằng cách sử dụng createOrReplaceTempView().

 # PySpark SQL NOT IN
df.createOrReplaceTempView("TAB")
spark.sql("SELECT * FROM TAB WHERE " +
    "languages NOT IN ('Java','Scala')").show()

Những kết quả tương tự như trên.

6. Kết luận

PySpark IS NOT IN được sử dụng để lọc các hàng không có hoặc tồn tại trong danh sách / mảng giá trị. Điều này tương tự như SQL NOT IN nhà điều hành.
Trên đây là thông tin về PySpark NOT isin() hoặc IS NOT IN Operator. Hãy để signalfix.net biết trong các bình luận cái nào phù hợp với bạn. Tương tự như vậy, tất cả các thắc mắc của bạn đều được hoan nghênh trong phần bình luận bên dưới.