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
フィールドにはプロパティ値が含まれています。他のすべてのフィールドでメタプロパティが表現されます。
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() メソッドを使用して値を変換します。 |