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()メソッドを使用して値を変換します。 | 
