DseGraphFrameのマッピング規則

DseGraphFrameでは、カラム名と型にマッピング規則を使用します。

DseGraphFrameでは、カラム名と型にマッピング規則を使用します。

カラムのマッピング規則

DataFrameのカラム名は、以下の場合を除き、グラフのプロパティ名と同じになります。

  • GraphFrameによって予約されているカラム名と競合する場合は、プロパティ名にアンダースコア(_)が追加されます。たとえば、idカラムのプロパティ名は_idとなります。
    表 1. GraphFrameで予約されているカラム名
    予約されているカラム名
    id
    src
    dst
    new_id
    new_src
    new_dst
    graphx_attr
  • DseGraphFrameとSpark SQLは、デフォルトで大文字と小文字が区別されません。大文字と小文字のみが異なるカラム名では、競合が起きます。大文字と小文字の競合を回避するには、Sparkプロパティspark.sql.caseSensitive=trueを設定してください。
    $ dse spark --conf spark.sql.caseSensitive=true

型マッピング規則

DseGraphFrameとSpark SQLでサポートされている型は限られています。頂点はRowインスタンスで表現されます。

頂点に複数のプロパティがある場合、各プロパティはプロパティ値を持つSpark SQL配列として表現されます。プロパティにメタプロパティがある場合、そのプロパティはStructTypeとして表現されます。構造体のvalueフィールドにはプロパティ値が含まれています。他のすべてのフィールドでメタプロパティが表現されます。

表 2. DSE GraphからSpark SQLおよびDseGraphFrameへの型マッピング
DSE Graphの型 Spark SQLの型 変換規則
boolean BooleanType
smallint ShortType
int IntegerType
bigint LongType
float FloatType
double DoubleType
decimal DecimalType(38, 18)
varint DecimalType(38, 0)
timestamp TimestampType
date DateType
time LongType 日付の始まりからのナノ秒数。
text StringType
uuid StringType UUID.toString()メソッドとUUID.fromString()メソッドを使用して値を変換します。
inet StringType toStringメソッドとInetAddress.getByName()メソッドを使用して値を変換します。
BLOB BinaryType
'PointType' StringType toWellKnownText()メソッドとfromWellKnownText()メソッドを使用して値を変換します。
'LineStringType' StringType toWellKnownText()メソッドとfromWellKnownText()メソッドを使用して値を変換します。
‘PolygonType' StringType toWellKnownText()メソッドとfromWellKnownText()メソッドを使用して値を変換します。