第6章. さまざまな種類のデータを扱う
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
第5章では、基本的なDataFrameの概念と抽象化について説明した。この章( )では、Sparkの構造化演算の基本である演算式の構築について説明する。また、以下のような様々な種類のデータを扱うことについても復習する:
-
ブール
-
数字
-
文字列
-
日付とタイムスタンプ
-
ヌルの取り扱い
-
複雑なタイプ
-
ユーザ定義関数
APIをどこで探すか
始める前に、ユーザとしてトランスフォームを探すべき場所について説明しておこう。Sparkは成長中のプロジェクトであり、どんな本も(この本も含めて)その時々のスナップショットである。本書の優先事項の1つは、この記述の時点で、データを変換する検索関数の記述場所を教えることである。以下に主な場所を示す:
DataFrame( ) メソッドDataset-
この 、実はちょっとしたトリックがある。というのも、DataFrameは
Row型のデータセットに過ぎないので、実際にはDatasetのメソッドを見ることになる。このメソッドはこちらのリンクから入手できる。
Dataset のようなサブモジュール DataFrameStatFunctionsそして DataFrameNaFunctionsのようなサブモジュールには、特定の問題セットを解決するメソッドがある。DataFrameStatFunctions例えば、DataFrameNaFunctions がヌルデータを扱うときに関連する関数を指すのに対して、 は統計的に関連するさまざまな関数を保持している。
Columnメソッド-
これらは第5章で 。これらのメソッドには、
aliasやcontainsのような一般化された様々なカラム関連メソッドが含まれている。カラム・メソッドのAPIリファレンスはこちらで発見できる。
org.apache.spark.sql.functions には、 、さまざまなデータ型に対するさまざまな関数が含まれている。使用頻度が高いため、パッケージ全体がインポートされていることも多い。 SQL関数とDataFrame関数はここで発見できる。
少し圧倒されるかもしれないが、恐れることはない。これらの関数の大部分は、SQLや分析システムで発見されるものだ。これらのツールはすべて、ある形式や構造のデータ行を別の形式に変換するという、ある目的を達成するために存在する。これにより、より多くの行を作成したり、利用可能な行数を減らしたりすることができる。はじめに、この分析に使用するDataFrame を読み取ってみよう:
// in Scalavaldf=spark.read.format("csv").option("header","true").option("inferSchema","true").load("/data/retail-data/by-day/2010-12-01.csv")df.printSchema()df.createOrReplaceTempView("dfTable")
# in Pythondf=spark.read.format("csv")\.option("header","true")\.option("inferSchema","true")\.load(
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access