使用 YARN 在 pyspark 中缓存大型数据帧时,我看到以下类型的消息:-
WARN BlockManagerMasterEndpoint: No more replicas available for rdd_23_62 !
Run Code Online (Sandbox Code Playgroud)
这个消息究竟是什么意思?
是否会导致后续Container killed on request. Exit code is 143错误?
从 Spark 在 Hive 表上运行的 ANALYZE TABLE 命令不会提供与从 Hive 发出的相同命令相同的性能改进。
\n\n例如,我已将数据帧插入到空的 Hive 表中:-
\n\noutput.write.insertInto(\xe2\x80\x9cXXXXXXXX\xe2\x80\x9d)\nRun Code Online (Sandbox Code Playgroud)\n\n然后运行分析表命令:-
\n\nspark.sql("ANALYZE TABLE XXXXXXXX COMPUTE STATISTICS")\nRun Code Online (Sandbox Code Playgroud)\n\n当我在 Hive 中进行记录计数时,速度非常慢:-
\n\nselect count(*) from XXXXXXXX;\n+-----------+\n| _c0 |\n+-----------+\n| 12345678 |\n+-----------+\n1 row selected (36.038 seconds)\nRun Code Online (Sandbox Code Playgroud)\n\n但是,如果我直接在 Hive 中运行相同的分析表命令,性能会提高:-
\n\nselect count(*) from XXXXXXXX;\n+-----------+\n| _c0 |\n+-----------+\n| 12345678 |\n+-----------+\n1 row selected (0.096 seconds)\nRun Code Online (Sandbox Code Playgroud)\n\n谁能解释为什么会出现这种差异?\n有解决方法吗?
\n如何在我的 spark 代码中找到 spark 配置的值?
例如,我想找到 spark.sql.shuffle.partitions 的值并在我的代码中引用它。
以下代码将返回所有值:-
spark.sparkContext.getConf().getAll()
如何检索单个配置设置?
在 Azure Synapse 数据流中,我想过滤值列表。
我可以使用以下语法:-
column1 == 'A' || column1 =='B'
但想使用这样的东西:-
column1 IN ('A','B')
我怎样才能做到这一点?
如何复制此代码以获取 pyspark 中的数据帧大小?
scala> val df = spark.range(10)
scala> print(spark.sessionState.executePlan(df.queryExecution.logical).optimizedPlan.stats)
Statistics(sizeInBytes=80.0 B, hints=none)
Run Code Online (Sandbox Code Playgroud)
我想要做的是将 sizeInBytes 值放入一个变量中。