Associate-Developer-Apache-Spark 試験問題 1
整数列 itemId が文字列列に変換されていることを除いて、複数列の DataFrame itemsDf と一致する DataFrame を返すコード ブロックは次のうちどれですか?
正解: B
説明
itemsDf.withColumn("itemId", col("itemId").cast("string"))
正しい。Column クラスの cast メソッドを使用して、列のデータ型を変換できます。また、既存の itemId 列を文字列を含む新しいバージョンに置き換えるには、itemsDf で withColumn メソッドを使用する必要があることに注意してください。
itemsDf.withColumn("itemId", col("itemId").convert("string"))
正しくない。col("itemId") が返す Column オブジェクトには convert メソッドがありません。
itemsDf.withColumn("itemId", convert("itemId", "string"))
間違い。Spark の spark.sql.functions モジュールには convert メソッドがありません。この質問は、「改心した」という言葉を使って誤解を招こうとしています。型変換は「型キャスト」とも呼ばれます。これは、変換メソッドではなくキャスト メソッドを探すことを忘れないようにするのに役立つ場合があります (正解を参照)。
itemsDf.select(astype("itemId", "string"))
間違い。astype は Column のメソッド (および Column.cast のエイリアス) ですが、pyspark.sql.functions (コード ブロックが意味するもの) のメソッドではありません。さらに、この質問では、複数列の DataFrame itemsDf に一致する完全な DataFrame を返すよう求めています。コード ブロックのように itemsDf から列を 1 つだけ選択すると、単一列の DataFrame が返されます。
spark.cast(itemsDf, "itemId", "string")
いいえ、Spark セッション (spark によって呼び出される) にはキャスト メソッドがありません。以下のドキュメントにリンクされている Spark セッションで使用可能なすべてのメソッドのリストを見つけることができます。
より詳しい情報:
- pyspark.sql.Column.cast - PySpark 3.1.2 ドキュメント
- pyspark.sql.Column.astype - PySpark 3.1.2 ドキュメント
- pyspark.sql.SparkSession - PySpark 3.1.2 ドキュメント
静的ノートブック | 動的ノートブック: テスト 3 を参照
Associate-Developer-Apache-Spark 試験問題 2
Associate-Developer-Apache-Spark 試験問題 3
Associate-Developer-Apache-Spark 試験問題 4
Associate-Developer-Apache-Spark 試験問題 5