public void TestThreadLocalSessions() { SparkSession.ClearActiveSession(); void testChildThread(string appName) { var thread = new Thread(() => { Assert.Null(SparkSession.GetActiveSession()); SparkSession.SetActiveSession( SparkSession.Builder().AppName(appName).GetOrCreate()); // Since we are in the child thread, GetActiveSession() should return the child // SparkSession. SparkSession activeSession = SparkSession.GetActiveSession(); Assert.NotNull(activeSession); Assert.Equal(appName, activeSession.Conf().Get("spark.app.name", null)); }); thread.Start(); thread.Join(); } for (int i = 0; i < 5; ++i) { testChildThread(i.ToString()); } Assert.Null(SparkSession.GetActiveSession()); }
public void TestSignaturesV2_3_X() { Assert.IsType <SparkContext>(_spark.SparkContext); Assert.IsType <Builder>(SparkSession.Builder()); SparkSession.ClearActiveSession(); SparkSession.SetActiveSession(_spark); Assert.IsType <SparkSession>(SparkSession.GetActiveSession()); SparkSession.ClearDefaultSession(); SparkSession.SetDefaultSession(_spark); Assert.IsType <SparkSession>(SparkSession.GetDefaultSession()); Assert.IsType <RuntimeConfig>(_spark.Conf()); Assert.IsType <SparkSession>(_spark.NewSession()); Assert.IsType <DataFrameReader>(_spark.Read()); Assert.IsType <DataFrame>(_spark.Range(10)); Assert.IsType <DataFrame>(_spark.Range(10, 100)); Assert.IsType <DataFrame>(_spark.Range(10, 100, 10)); Assert.IsType <DataFrame>(_spark.Range(10, 100, 10, 5)); _spark.Range(10).CreateOrReplaceTempView("testView"); Assert.IsType <DataFrame>(_spark.Table("testView")); Assert.IsType <DataStreamReader>(_spark.ReadStream()); Assert.IsType <UdfRegistration>(_spark.Udf()); Assert.IsType <Catalog>(_spark.Catalog()); }