Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,13 @@ object IoTDBUtils {
case BinaryType => TSDataType.BLOB
case DateType => TSDataType.DATE
case TimestampType => TSDataType.STRING
case _ => TSDataType.STRING
case _ => {
var errMsg = s"Unable to convert Spark data type $sparkDataType to IoTDB data type."
if (sparkDataType.simpleString.toLowerCase.contains("decimal")) {
errMsg += s"For float numbers in insert into values sql, you should add the suffix 'f' or 'd' to represent float or double."
}
throw new IllegalArgumentException(errMsg)
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ import org.apache.spark.SparkException
import org.apache.spark.internal.Logging
import org.apache.spark.sql.catalyst.InternalRow
import org.apache.spark.sql.connector.write.{DataWriter, WriterCommitMessage}
import org.apache.spark.sql.types.StructType
import org.apache.spark.sql.types.{NullType, StructType}
import org.apache.tsfile.enums.TSDataType
import org.apache.tsfile.write.record.Tablet
import org.apache.tsfile.write.record.Tablet.ColumnCategory
Expand Down Expand Up @@ -57,10 +57,15 @@ class IoTDBDataWriter(options: IoTDBOptions, writeSchema: StructType, tableSchem
} else {
tableSchema.fields(i)
}
val columnCategoryStr = tableSchemaMap.getOrElse(fieldInTableSchema.name, tableSchema.fields(i)).metadata.getString(IoTDBUtils.COLUMN_CATEGORY)
val actualColumnSchema = tableSchemaMap.getOrElse(fieldInTableSchema.name, tableSchema.fields(i))
val columnCategoryStr = actualColumnSchema.metadata.getString(IoTDBUtils.COLUMN_CATEGORY)
val columnCategory = IoTDBUtils.getIoTDBColumnCategory(columnCategoryStr)
if (fieldInTableSchema.name != IoTDBUtils.TIME) {
val dataType = writeSchemaField.dataType
val dataType = if (writeSchemaField.dataType == NullType) {
actualColumnSchema.dataType
} else {
writeSchemaField.dataType
}
columnNameList.add(fieldInTableSchema.name)
dataTypeList.add(IoTDBUtils.getIoTDBDataType(dataType))
columnCategoryList.add(columnCategory)
Expand Down