Похоже, что у вас не работает metastore. Вы можете попробовать запустить службу.
hive --service metastore
. Вы можете использовать следующий код, чтобы прочитать csv, который не использует SQLContext
from pyspark.sql import SparkSession
spark = SparkSession \
.builder \
.appName("Reading CSV") \
.getOrCreate()
df_t = spark.read.csv('s3a://Bucket_name/Train - Copy.csv',header=True, inferSchema=True)
df_t.show()
. Из-за правил приоритета операторов и того факта, что ++
- постфиксный оператор, add_one_v2 ()
разыменовывает указатель, но ++
фактически применяется к самому указателю , Однако помните, что C всегда использует передачу по значению: add_one_v2 ()
увеличивает свою локальную копию указателя, что никак не повлияет на значение, хранящееся по этому адресу. .
В качестве теста замените add_one_v2 ()
этими битами кода и посмотрите, как это повлияет на вывод:
Сделайте это в функции InitializeComponent():
// Add EventHandler for NetworkAddressChanged event
NetworkChange.NetworkAddressChanged += new NetworkAddressChangedEventHandler(AddressChangedCallback);
Вот Метод, который вызывается при возникновении события:
internal void AddressChangedCallback(object sender, EventArgs e)
{
// Check for NetworkConnectivity
_isInternetConnectionActive = new NetworkConnectivity().IsInternetConnected;
}
Вот Класс NetworkConnectivity:
public class NetworkConnectivity
{
private List<IPAddress> _ipAddresses = new List<IPAddress>();
public NetworkConnectivity()
{
_ipAddresses = new List<IPAddress>();
}
#region Public Properties
public int CountIPAddresses
{
get { return this.IPAddresses.Count; }
}
public List<IPAddress> IPAddresses
{
get
{
_ipAddresses.Clear();
// Get a listing of all network adapters
NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface adapter in adapters)
{
IPInterfaceProperties adapterProperties = adapter.GetIPProperties();
GatewayIPAddressInformationCollection addresses = adapterProperties.GatewayAddresses;
// If this adapter has at least 1 IPAddress
if (addresses.Count > 0)
{
// Loop through all IP Addresses
foreach (GatewayIPAddressInformation address in addresses)
{
_ipAddresses.Add(address.Address);
}
}
}
return _ipAddresses;
}
}
public bool IsInternetConnected
{
get
{
if (this.CountIPAddresses == 0)
{
return false;
}
else
{
//IPAddress[] ips = ResolveDNSAddress("google.com");
//return PingIPAddressPool(ips);
return PingIPAddress("72.14.204.104"); // Google IP
}
}
}
#endregion
#region Public Methods
public IPAddress[] ResolveDNSAddress(string UrlAddress)
{
IPHostEntry hostInfo = Dns.Resolve(UrlAddress);
return hostInfo.AddressList;
}
public bool PingIPAddressPool(IPAddress[] ipAddresses)
{
foreach (IPAddress ip in ipAddresses)
{
if (PingIPAddress(ip.Address.ToString()))
{
return true;
}
}
return false;
}
public bool PingIPAddress(string ip)
{
// Pinging
IPAddress addr = IPAddress.Parse(ip);
Ping pingSender = new Ping();
PingOptions options = new PingOptions();
// Use the default Ttl value which is 128,
// but change the fragmentation behavior.
options.DontFragment = true;
// Create a buffer of 32 bytes of data to be transmitted.
string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
byte[] buffer = Encoding.ASCII.GetBytes(data);
int timeout = 15; // seconds to wait for response
int attempts = 2; // ping attempts
for (int i = 0; i < attempts; i++)
{
PingReply reply = pingSender.Send(addr, timeout, buffer, options);
if (reply.Status == IPStatus.Success)
{ return true; }
}
return false;
}
#endregion
}