Оба этих вектора имеют одинаковое распределение, поэтому ваш перекос будет одинаковым
from scipy.stats import skew
val1 = [20,100,50,0,0,0,0,0,0]
skew(val1)
Out[6]: 1.646145420937772
val2 = [0,0,0,0,0,0,50,100,20]
skew(val2)
Out[7]: 1.646145420937772
Если вы замените нули во втором векторе на 100, тогда распределение переместится влево
val2 = [100,100,100,100,100,100,50,100,20]
skew(val2)
Out[9]: -1.5578824286327273
В писпарке
from pyspark.sql import functions as f
val1 = [(20,100),(100,100),(50,100),(0,100),(0,100),(0,0),(0,50),(0,100),(0,20)]
cols = ['val1','val2']
df = spark.createDataFrame(val1, cols)
display(df.select(f.skewness(df['val1']),f.skewness(df['val2'])))
skewness(val1) | skewness(val2)
1.6461454209377713 |-0.9860224906700872