我有一個函數旋轉圖像用python編寫:
從公益訴訟導入圖像def rotate_image(形象,rotation_angle): im = Image.open(圖片)=我。旋轉(rotation_angle,擴大= True)返回
我現在想要使用這個函數作為pyspark udf。
進口pyspark.sql。函數作為fn df = spark.read.format(“圖像”).load (image2.jpg) #試圖注冊函數#不確定數據類型聲明這裏的形象_udf = fn.udf (rotate_image) #應用函數-不確定我在這裏做df。withColumn (x1, _udf(數組(“形象”,90))),告訴()
你能協助注冊和使用udf和圖像。
讓我們試試以下:
從pyspark.ml。圖像導入ImageSchema ImageTransformer pyspark.sql。函數從pyspark.sql進口udf。類型進口StringType角= 90 def rotate_image(圖片):np_array = ImageSchema.toNDArray(圖片)旋轉= np。rot90 (np_array k =角/ / 90,軸=(1,0))返回ImageSchema.fromNDArray(旋轉)rotate_udf = udf (rotate_image, StringType ()) image_df = spark.read.format .load(“圖像”)(“路徑/ /圖像/目錄”)rotated_images_df = ImageTransformer () .setOutputCol(“旋轉”).transform (image_df)。withColumn(“旋轉”,rotate_udf(“圖像”))
讓我們試試以下:
從pyspark.ml。圖像導入ImageSchema ImageTransformer pyspark.sql。函數從pyspark.sql進口udf。類型進口StringType角= 90 def rotate_image(圖片):np_array = ImageSchema.toNDArray(圖片)旋轉= np。rot90 (np_array k =角/ / 90,軸=(1,0))返回ImageSchema.fromNDArray(旋轉)rotate_udf = udf (rotate_image, StringType ()) image_df = spark.read.format .load(“圖像”)(“路徑/ /圖像/目錄”)rotated_images_df = ImageTransformer () .setOutputCol(“旋轉”).transform (image_df)。withColumn(“旋轉”,rotate_udf(“圖像”))