in src/main/scala/com/amazon/deequ/analyzers/applicability/Applicability.scala [248:280]
def generateRandomData(schema: StructType, numRows: Int): DataFrame = {
val rows = (0 to numRows).map { _ =>
val cells = schema.fields.map { field =>
val cell: scala.Any = field.dataType match {
case StringType => randomString(field.nullable)
case IntegerType => randomInteger(field.nullable)
case FloatType => randomFloat(field.nullable)
case DoubleType => randomDouble(field.nullable)
case ByteType => randomByte(field.nullable)
case ShortType => randomShort(field.nullable)
case LongType => randomLong(field.nullable)
case decimalType: DecimalType =>
randomDecimal(field.nullable, decimalType.precision, decimalType.scale)
case TimestampType => randomTimestamp(field.nullable)
case BooleanType => randomBoolean(field.nullable)
case _ =>
throw new IllegalArgumentException(
"Applicability check can only handle basic datatypes " +
s"for columns (string, integer, float, double, decimal, boolean) " +
s"not ${field.dataType}")
}
cell
}
Row(cells: _*)
}
session.createDataFrame(session.sparkContext.parallelize(rows), schema)
}