`spark.debug.maxToStringFields` 和 `spark.sql.debug.maxToStringFields` 关系?

2024-04-12

火花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/internal/SQLConf.scala

不知怎的,它变成了spark.debug.maxToStringFields in https://github.com/apache/spark/blob/master/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/package.scala#L178 https://github.com/apache/spark/blob/master/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/package.scala#L178

实际上,spark.sql.debug.maxToStringFields不起作用,同时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]

If .config('spark.debug.maxToStringFields', 2000) \被注释掉然后它就会显示出来... 76 more fields

有什么用spark.sql.debug.maxToStringFields?


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

spark.sql.debug.maxToStringFields取代spark.debug.maxToStringFields in v3.0

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

`spark.debug.maxToStringFields` 和 `spark.sql.debug.maxToStringFields` 关系? 的相关文章

随机推荐