我正在尝试使用PySpark中的rand函数生成一个带有随机数的列。我希望rand函数将行的主键作为种子,这样数字是可复制的。但是,当我跑的时候:
df.withColumn('rand_key', F.rand(F.col('primary_id')))
使用f.rand(seed)
函数的问题是,它需要长seed
参数,并将其视为文字(静态)。
解决这个问题的一种方法是创建自己的rand
函数,该函数将column作为参数:
import random
def rand(seed):
random.seed(seed)
return random.random()
from pyspark.sql.functions import udf
from pyspark.sql.types import DoubleType
rand_udf = udf(rand, DoubleType())
df = spark.createDataFrame([(1, 'a'), (2, 'b'), (1, 'c')], ['a', 'b'])
df.withColumn('rr', rand_udf(df.a)).show()
+---+---+-------------------+
| a| b| rr|
+---+---+-------------------+
| 1| a|0.13436424411240122|
| 2| b| 0.9560342718892494|
| 1| c|0.13436424411240122|
+---+---+-------------------+
问题内容: 如何使用复合主键作为外键?看来我的尝试无效。 问题答案: 该行: 是错的。您不能那样使用,这只是父表中PK约束的名称。要将复合主键用作外键,您必须向子表中添加相同数量(组成PK)的相同数据类型的列,然后在定义中使用这些列的组合:
如何将复合主键用作外键?看来我的尝试没有成功。
我有一些实体: 当我试图保存新的cbonus记录时,出现异常: org.postgresql.util.PSQLException: ERROR: null值在列"bank_id"的关系"cBonus"违反了非空约束详细信息:失败的行包含(773, gp3, null, null, f)。 和查询 DEBUG 24817-[nio-8080-exec-4]org . hibernate . SQL
问题内容: 我在使用LOAD DATA INFILE命令时遇到了一些麻烦,因为我想忽略数据库中已经存在的行。如果说我的数据表如下, 其中id是自动递增值。我拥有的csv文件包含以下数据, 我想忽略这些行, 并将其余的上传到表格中。我尚未将所有内容上传到表的查询如下, 请帮助我完成此任务。。将不胜感激..我尝试了许多链接,但没有帮助:( 问题答案: 在年龄列上创建一个唯一索引,然后:
我希望将变量插入到对象键结构中,但我只得到变量名,而不是变量值。
它应该允许独立地更新表,并在父行被删除时删除子行。