`spark.debug.maxToStringFields`&``spark.sql.debug.maxToStringFields`关系? [英] `spark.debug.maxToStringFields` & `spark.sql.debug.maxToStringFields` relation?

查看:407
本文介绍了`spark.debug.maxToStringFields`&``spark.sql.debug.maxToStringFields`关系?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Spark v2.4

Spark v2.4

spark.sql.debug.maxToStringFields 在此处定义 https://github.com/apache/spark/blob/master/sql/catalyst/src/main/scala/org/apache/spark/sql/internal/SQLConf.scala

它以某种方式变成 https://github.com/apache/spark/blob/master/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/package.scala#L178

实际上,当 spark.debug.maxToStringFields 工作时, spark.sql.debug.maxToStringFields 不起作用

In fact, spark.sql.debug.maxToStringFields doesn't work while spark.debug.maxToStringFields works

spark = SparkSession \
    .builder \
    .master('local[15]') \
    .appName('Notebook') \
    .config('spark.sql.debug.maxToStringFields', 2000) \
    .config('spark.debug.maxToStringFields', 2000) \
    .getOrCreate()

df = spark.createDataFrame(spark.range(1000).rdd.map(lambda x: range(100)))
df.repartition(1).write.mode('overwrite').parquet('test.parquet')

df = spark.read.parquet('test.parquet')
df.select('*').explain()


 FileScan parquet [_1#0L,_2#1L,_3#2L,_4#3L,_5#4L,_6#5L,_7#6L,_8#7L,_9#8L,_10#9L,_11#10L,_12#11L,_13#12L,_14#13L,_15#14L,_16#15L,_17#16L,_18#17L,_19#18L,_20#19L,_21#20L,_22#21L,_23#22L,_24#23L,_25#24L,_26#25L,_27#26L,_28#27L,_29#28L,_30#29L,_31#30L,_32#31L,_33#32L,_34#33L,_35#34L,_36#35L,_37#36L,_38#37L,_39#38L,_40#39L,_41#40L,_42#41L,_43#42L,_44#43L,_45#44L,_46#45L,_47#46L,_48#47L,_49#48L,_50#49L,_51#50L,_52#51L,_53#52L,_54#53L,_55#54L,_56#55L,_57#56L,_58#57L,_59#58L,_60#59L,_61#60L,_62#61L,_63#62L,_64#63L,_65#64L,_66#65L,_67#66L,_68#67L,_69#68L,_70#69L,_71#70L,_72#71L,_73#72L,_74#73L,_75#74L,_76#75L,_77#76L,_78#77L,_79#78L,_80#79L,_81#80L,_82#81L,_83#82L,_84#83L,_85#84L,_86#85L,_87#86L,_88#87L,_89#88L,_90#89L,_91#90L,_92#91L,_93#92L,_94#93L,_95#94L,_96#95L,_97#96L,_98#97L,_99#98L,_100#99L]

如果注释掉 .config('spark.debug.maxToStringFields',2000)\ ,则它将显示 ... 76个其他字段

If .config('spark.debug.maxToStringFields', 2000) \ is commented out then it would show up ... 76 more fields

spark.sql.debug.maxToStringFields 的用途是什么?

推荐答案

根据 https://issues.apache.org/jira/browse/SPARK-26066 https://github.com/apache/spark/pull/23039

spark.sql.debug.maxToStringFields 替换了v3.0中的 spark.debug.maxToStringFields

spark.sql.debug.maxToStringFields replaces spark.debug.maxToStringFields in v3.0

这篇关于`spark.debug.maxToStringFields`&``spark.sql.debug.maxToStringFields`关系?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆