0
私は3列のpysparkデータフレームを持っています。 ハイブテーブル 'test1'のDDLはすべて文字列データ型です。私はdf.printSchemaを行う場合は、以下に示すよう だから、すべては今、私は「C2」列に整数型であるレコードだけをフィルタリングするpysparkデータフレームの列のデータ型の妥当性確認
>>> df = spark.sql("select * from default.test1")
>>> df.printSchema()
root
|-- c1: string (nullable = true)
|-- c2: string (nullable = true)
|-- c3: string (nullable = true)
+----------+--------------+-------------------+
|c1 |c2 |c3 |
+----------+--------------+-------------------+
|April |20132014 |4 |
|May |20132014 |5 |
|June |abcdefgh |6 |
+----------+--------------+-------------------+
、文字列データ型です。 基本的に、最初の2つのレコードは、 '20132014'のような整数型です。他のレコードは除外します。
df.withColumn("c2", df["c2"].cast("integer")).na.drop(subset=["c2"])
c2
が有効な整数でない場合、それはNULL
ことと、後の工程で廃棄されます。一列に